import { t } from "../../services/i18n.js"; import utils from "../../services/utils.js"; import server from "../../services/server.js"; import toastService from "../../services/toast.js"; import appContext from "../../components/app_context.js"; import libraryLoader from "../../services/library_loader.js"; import openService from "../../services/open.js"; import protectedSessionHolder from "../../services/protected_session_holder.js"; import BasicWidget from "../basic_widget.js"; import dialogService from "../../services/dialog.js"; import options from "../../services/options.js"; import type FNote from "../../entities/fnote.js"; import type { NoteType } from "../../entities/fnote.js"; import { Dropdown, Modal } from "bootstrap"; const TPL = `
")
.text(fullRevision.content).html());
} else if (revisionItem.type === "image") {
if (fullRevision.mime === "image/svg+xml") {
let encodedSVG = encodeURIComponent(fullRevision.content); //Base64 of other format images may be embedded in svg
this.$content.html($("
")
.attr("src", `data:${fullRevision.mime};utf8,${encodedSVG}`)
.css("max-width", "100%")
.css("max-height", "100%").html());
} else {
this.$content.html(
$("
")
// the reason why we put this inline as base64 is that we do not want to let user copy this
// as a URL to be used in a note. Instead, if they copy and paste it into a note, it will be uploaded as a new note
.attr("src", `data:${fullRevision.mime};base64,${fullRevision.content}`)
.css("max-width", "100%")
.css("max-height", "100%")
.html()
);
}
} else if (revisionItem.type === "file") {
const $table = $("| ").text(t("revisions.mime")), $(" | ").text(revisionItem.mime))) .append($(" |
|---|---|
| ").text(t("revisions.file_size")), $(" | ").text(utils.formatSize(revisionItem.contentLength)))); if (fullRevision.content) { $table.append( $(" |
| ').append($(' ').text(t("revisions.preview")), $('').text(fullRevision.content))
)
);
}
this.$content.html($table.html());
} else if (["canvas", "mindMap"].includes(revisionItem.type)) {
const encodedTitle = encodeURIComponent(revisionItem.title);
this.$content.html(
$(" ").text(fullRevision.content));
} else {
this.$content.text(t("revisions.preview_not_available"));
}
}
}
| |