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) { |