aboutsummaryrefslogtreecommitdiff
path: root/src/webex/pages
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-06-05 03:20:28 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-06-05 03:20:28 +0200
commit290459133226503bcbc16f7dc3cb04d7abdc6735 (patch)
tree0d21f175f60c10f144f9dc6a661979e5e06c8d71 /src/webex/pages
parente95027f37712c37be243403a78ff6a327a83177e (diff)
downloadwallet-core-290459133226503bcbc16f7dc3cb04d7abdc6735.tar.xz
pretty reset page
Diffstat (limited to 'src/webex/pages')
-rw-r--r--src/webex/pages/popup.tsx3
-rw-r--r--src/webex/pages/reset-required.html30
-rw-r--r--src/webex/pages/reset-required.tsx73
3 files changed, 105 insertions, 1 deletions
diff --git a/src/webex/pages/popup.tsx b/src/webex/pages/popup.tsx
index 831147f1e..f1f0353ad 100644
--- a/src/webex/pages/popup.tsx
+++ b/src/webex/pages/popup.tsx
@@ -36,6 +36,7 @@ import {
} from "../../types";
import { abbrev, renderAmount } from "../renderHtml";
+import * as wxApi from "../wxApi";
import * as React from "react";
import * as ReactDOM from "react-dom";
@@ -484,7 +485,7 @@ function reload() {
function confirmReset() {
if (confirm("Do you want to IRREVOCABLY DESTROY everything inside your" +
" wallet and LOSE ALL YOUR COINS?")) {
- chrome.runtime.sendMessage({type: "reset"});
+ wxApi.resetDb();
window.close();
}
}
diff --git a/src/webex/pages/reset-required.html b/src/webex/pages/reset-required.html
new file mode 100644
index 000000000..72b176b4d
--- /dev/null
+++ b/src/webex/pages/reset-required.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="UTF-8">
+ <title>Taler Wallet: Select Taler Provider</title>
+
+ <link rel="icon" href="/img/icon.png">
+ <link rel="stylesheet" type="text/css" href="../style/wallet.css">
+ <link rel="stylesheet" type="text/css" href="../style/pure.css">
+
+ <script src="/dist/page-common-bundle.js"></script>
+ <script src="/dist/reset-required-bundle.js"></script>
+
+ <style>
+ body {
+ font-size: 100%;
+ overflow-y: scroll;
+ }
+ </style>
+
+</head>
+
+<body>
+ <section id="main">
+ <div id="container"></div>
+ </section>
+</body>
+
+</html>
diff --git a/src/webex/pages/reset-required.tsx b/src/webex/pages/reset-required.tsx
new file mode 100644
index 000000000..90ea51abe
--- /dev/null
+++ b/src/webex/pages/reset-required.tsx
@@ -0,0 +1,73 @@
+/*
+ This file is part of TALER
+ (C) 2017 GNUnet e.V.
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+
+/**
+ * Page to inform the user when a database reset is required.
+ *
+ * @author Florian Dold
+ */
+
+import * as React from "react";
+import * as ReactDOM from "react-dom";
+
+import * as wxApi from "../wxApi";
+
+class State {
+ checked: boolean;
+ resetRequired: boolean;
+}
+
+
+class ResetNotification extends React.Component<any, State> {
+ constructor(props: any) {
+ super(props);
+ this.state = {checked: false, resetRequired: true};
+ setInterval(() => this.update(), 500);
+ }
+ async update() {
+ const res = await wxApi.checkUpgrade();
+ this.setState({resetRequired: res.dbResetRequired});
+ }
+ render() {
+ if (this.state.resetRequired) {
+ return (
+ <div>
+ <h1>Manual Reset Reqired</h1>
+ <p>The wallet's database in your browser is incompatible with the currently installed wallet. Please reset manually.</p>
+ <p>Once the database format has stabilized, we will provide automatic upgrades.</p>
+ <input id="check" type="checkbox" checked={this.state.checked} onChange={(e) => this.setState({checked: e.target.checked})} />{" "}
+ <label htmlFor="check">
+ I understand that I will lose all my data
+ </label>
+ <br />
+ <button className="pure-button" disabled={!this.state.checked} onClick={() => wxApi.resetDb()}>Reset</button>
+ </div>
+ );
+ }
+ return (
+ <div>
+ <h1>Everything is fine!</h1>
+ A reset is not required anymore, you can close this page.
+ </div>
+ );
+ }
+}
+
+
+document.addEventListener("DOMContentLoaded", () => {
+ ReactDOM.render(<ResetNotification />, document.getElementById( "container")!);
+});