diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-06-05 03:20:28 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-06-05 03:20:28 +0200 |
commit | 290459133226503bcbc16f7dc3cb04d7abdc6735 (patch) | |
tree | 0d21f175f60c10f144f9dc6a661979e5e06c8d71 /src/webex/pages | |
parent | e95027f37712c37be243403a78ff6a327a83177e (diff) | |
download | wallet-core-290459133226503bcbc16f7dc3cb04d7abdc6735.tar.xz |
pretty reset page
Diffstat (limited to 'src/webex/pages')
-rw-r--r-- | src/webex/pages/popup.tsx | 3 | ||||
-rw-r--r-- | src/webex/pages/reset-required.html | 30 | ||||
-rw-r--r-- | src/webex/pages/reset-required.tsx | 73 |
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")!); +}); |