mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 18:12:29 +08:00
chore(client/ts): port web_view
This commit is contained in:
parent
237f2ead73
commit
fd47412d51
@ -1,18 +1,20 @@
|
||||
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%">
|
||||
<div class="note-detail-web-view-help alert alert-warning" style="margin: 50px; padding: 20px 20px 0px 20px;">
|
||||
<h4>${t("web_view.web_view")}</h4>
|
||||
|
||||
|
||||
<p>${t("web_view.embed_websites")}</p>
|
||||
|
||||
<p>${t("web_view.create_label")}</p>
|
||||
|
||||
<h4>${t("web_view.disclaimer")}</h4>
|
||||
|
||||
|
||||
<p>${t("web_view.experimental_note")}</p>
|
||||
</div>
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user