diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-03-04 17:30:10 -0800 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-03-04 17:30:10 -0800 | 
| commit | c8eb77cfd9e30625ae33739b7de5a86f59d0457c (patch) | |
| tree | 8125b75868077259df691c5cf86c7bae0c2b145b /ext/fg/js/display-frame.js | |
| parent | 2e7ce451126342a9e77c43e757cd1ffdac00d807 (diff) | |
wip
Diffstat (limited to 'ext/fg/js/display-frame.js')
| -rw-r--r-- | ext/fg/js/display-frame.js | 71 | 
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(); +    } +}; |