|
|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
import { t } from "../../services/i18n.js";
|
|
|
|
|
import TypeWidget from "./type_widget.js";
|
|
|
|
|
import attributeService from "../../services/attributes.js";
|
|
|
|
|
import type FNote from "../../entities/fnote.js";
|
|
|
|
|
import type { EventData } from "../../components/app_context.js";
|
|
|
|
|
|
|
|
|
|
const TPL = `
|
|
|
|
|
<div class="note-detail-web-view note-detail-printable" style="height: 100%">
|
|
|
|
|
@ -20,6 +22,10 @@ const TPL = `
|
|
|
|
|
</div>`;
|
|
|
|
|
|
|
|
|
|
export default class WebViewTypeWidget extends TypeWidget {
|
|
|
|
|
|
|
|
|
|
private $noteDetailWebViewHelp!: JQuery<HTMLElement>;
|
|
|
|
|
private $noteDetailWebViewContent!: JQuery<HTMLElement>;
|
|
|
|
|
|
|
|
|
|
static getType() {
|
|
|
|
|
return "webView";
|
|
|
|
|
}
|
|
|
|
|
@ -34,11 +40,15 @@ export default class WebViewTypeWidget extends TypeWidget {
|
|
|
|
|
super.doRender();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async doRefresh(note) {
|
|
|
|
|
async doRefresh(note: FNote) {
|
|
|
|
|
this.$widget.show();
|
|
|
|
|
this.$noteDetailWebViewHelp.hide();
|
|
|
|
|
this.$noteDetailWebViewContent.hide();
|
|
|
|
|
|
|
|
|
|
if (!this.note) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const webViewSrc = this.note.getLabelValue("webViewSrc");
|
|
|
|
|
|
|
|
|
|
if (webViewSrc) {
|
|
|
|
|
@ -54,17 +64,19 @@ export default class WebViewTypeWidget extends TypeWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cleanup() {
|
|
|
|
|
this.$noteDetailWebViewContent.removeAttribute("src");
|
|
|
|
|
this.$noteDetailWebViewContent.removeAttr("src");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setDimensions() {
|
|
|
|
|
const $parent = this.$widget;
|
|
|
|
|
|
|
|
|
|
this.$noteDetailWebViewContent.height($parent.height()).width($parent.width());
|
|
|
|
|
this.$noteDetailWebViewContent
|
|
|
|
|
.height($parent.height() ?? 0)
|
|
|
|
|
.width($parent.width() ?? 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
entitiesReloadedEvent({ loadResults }) {
|
|
|
|
|
if (loadResults.getAttributeRows().find((attr) => attr.name === "webViewSrc" && attributeService.isAffecting(attr, this.noteContext.note))) {
|
|
|
|
|
entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
|
|
|
|
|
if (loadResults.getAttributeRows().find((attr) => attr.name === "webViewSrc" && attributeService.isAffecting(attr, this.noteContext?.note))) {
|
|
|
|
|
this.refresh();
|
|
|
|
|
}
|
|
|
|
|
}
|