aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/display-frame.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fg/js/display-frame.js')
-rw-r--r--ext/fg/js/display-frame.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/ext/fg/js/display-frame.js b/ext/fg/js/display-frame.js
new file mode 100644
index 00000000..8f4a790f
--- /dev/null
+++ b/ext/fg/js/display-frame.js
@@ -0,0 +1,71 @@
+/*
+ * 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/>.
+ */
+
+
+window.displayFrame = new class extends Display {
+ constructor() {
+ super($('#spinner'), $('#content'));
+ $(window).on('message', this.onMessage.bind(this));
+ }
+
+ definitionAdd(definition, mode) {
+ return bgDefinitionAdd(definition, mode);
+ }
+
+ definitionsAddable(definitions, mode) {
+ return bgDefinitionsAddable(definitions, mode);
+ }
+
+ textRender(template, data) {
+ return bgTextRender(template, data);
+ }
+
+ kanjiFind(character) {
+ return bgKanjiFind(character);
+ }
+
+ handleError(error) {
+ if (window.orphaned) {
+ this.api_showOrphaned();
+ } else {
+ errorShow(error);
+ }
+ }
+
+ onMessage(e) {
+ const {action, params} = e.originalEvent.data, method = this['api_' + action];
+ if (typeof(method) === 'function') {
+ method.call(this, params);
+ }
+ }
+
+ api_showTermDefs({definitions, options, context}) {
+ window.scrollTo(0, 0);
+ super.showTermDefs(definitions, options, context);
+ }
+
+ api_showKanjiDefs({definitions, options, context}) {
+ window.scrollTo(0, 0);
+ super.showKanjiDefs(defintions, options, context);
+ }
+
+ api_showOrphaned() {
+ $('#content').hide();
+ $('#orphan').show();
+ }
+};