diff options
author | Alex Yatskov <alex@foosoft.net> | 2016-09-14 21:08:51 -0700 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2016-09-14 21:08:51 -0700 |
commit | ce49a126cf156d6886e664f80417a2b65ff118ba (patch) | |
tree | 00becd8ec36bacf7441e56794f1d5eef09faadf2 | |
parent | b9d53f8427dde34900799295287c634a68d00687 (diff) |
Progress bar
-rw-r--r-- | ext/bg/import.html | 25 | ||||
-rw-r--r-- | ext/bg/js/import.js | 23 | ||||
-rw-r--r-- | ext/bg/js/yomichan.js | 13 |
3 files changed, 60 insertions, 1 deletions
diff --git a/ext/bg/import.html b/ext/bg/import.html new file mode 100644 index 00000000..47483c25 --- /dev/null +++ b/ext/bg/import.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Yomichan Dictionary Import</title> + <link rel="stylesheet" type="text/css" href="../lib/bootstrap-3.3.6-dist/css/bootstrap.min.css"> + <link rel="stylesheet" type="text/css" href="../lib/bootstrap-3.3.6-dist/css/bootstrap-theme.min.css"> + </head> + <body> + <div class="container"> + <div class="page-header"> + <h1>Yomichan Dictionary Import</h1> + </div> + + <p>Importing dictionary data, this can take a while...</p> + + <div class="progress"> + <div class="progress-bar" style="width: 0%" /> + </div> + </div> + + <script src="../lib/jquery-2.2.2.min.js"></script> + <script src="js/import.js"></script> + </body> +</html> diff --git a/ext/bg/js/import.js b/ext/bg/js/import.js new file mode 100644 index 00000000..905b4580 --- /dev/null +++ b/ext/bg/js/import.js @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2016 Alex Yatskov <alex@foosoft.net> + * Author: Alex Yatskov <alex@foosoft.net> + * + * This program 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 of the License, or + * (at your option) any later version. + * + * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. + */ + + +chrome.runtime.onMessage.addListener(({state, progress}, sender, callback) => { + $('.progress-bar').css('width', progress + '%'); + callback(); +}); diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index c9f53253..bec34691 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -23,6 +23,7 @@ class Yomichan { Handlebars.registerHelper('kanjiLinks', kanjiLinks); this.translator = new Translator(); + this.importTabId = null; this.asyncPools = {}; this.ankiConnectVer = 0; this.setState('disabled'); @@ -48,7 +49,17 @@ class Yomichan { } onImport({state, progress}) { - console.log(`${state}: ${progress}`); + if (state === 'begin') { + chrome.tabs.create({url: chrome.extension.getURL('bg/import.html')}, tab => this.importTabId = tab.id); + } + + if (this.importTabId !== null) { + chrome.tabs.sendMessage(this.importTabId, {state, progress}, () => null); + } + + if (state === 'end') { + this.importTabId = null; + } } onMessage(request, sender, callback) { |