allow looking up terms from within terms

resolves #167, resolves #139, resolves #75, resolves #151
This commit is contained in:
siikamiika 2019-08-01 02:20:09 +03:00
parent 7cfcfb3bf3
commit b8df9896e6
3 changed files with 38 additions and 0 deletions

View File

@ -36,6 +36,8 @@
<script src="/fg/js/api.js"></script>
<script src="/fg/js/util.js"></script>
<script src="/fg/js/document.js"></script>
<script src="/fg/js/source.js"></script>
<script src="/mixed/js/display.js"></script>
<script src="/fg/js/float.js"></script>

View File

@ -123,6 +123,41 @@ class DisplayFloat extends Display {
parent.appendChild(this.styleNode);
}
}
async onTermLookup(e) {
try {
e.preventDefault();
const clickedElement = $(e.target);
const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY});
textSource.setEndOffset(this.options.scanning.length);
const {definitions, length} = await apiTermsFind(textSource.text());
if (definitions.length === 0) {
return false;
}
textSource.setEndOffset(length);
const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);
const context = {
source: {
definitions: this.definitions,
index: Display.entryIndexFind(clickedElement)
}
};
if (this.context) {
context.sentence = sentence;
context.url = this.context.url;
}
this.termsShow(definitions, this.options, context);
} catch (e) {
this.onError(e);
}
}
}
window.yomichan_display = new DisplayFloat();

View File

@ -265,6 +265,7 @@ class Display {
$('.action-view-note').click(this.onNoteView.bind(this));
$('.action-play-audio').click(this.onAudioPlay.bind(this));
$('.kanji-link').click(this.onKanjiLookup.bind(this));
$('.glossary li').click(this.onTermLookup.bind(this));
await this.adderButtonUpdate(['term-kanji', 'term-kana'], sequence);
} catch (e) {