summaryrefslogtreecommitdiff
path: root/ext/bg
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2016-09-14 21:08:51 -0700
committerAlex Yatskov <alex@foosoft.net>2016-09-14 21:08:51 -0700
commitce49a126cf156d6886e664f80417a2b65ff118ba (patch)
tree00becd8ec36bacf7441e56794f1d5eef09faadf2 /ext/bg
parentb9d53f8427dde34900799295287c634a68d00687 (diff)
Progress bar
Diffstat (limited to 'ext/bg')
-rw-r--r--ext/bg/import.html25
-rw-r--r--ext/bg/js/import.js23
-rw-r--r--ext/bg/js/yomichan.js13
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) {