mirror of
https://github.com/zadam/trilium.git
synced 2026-01-06 14:44:25 +01:00
This commit is contained in:
parent
74ab591214
commit
e4dcc0f768
@ -1,35 +1,35 @@
|
|||||||
import { applyModals } from "./layout_commons.js";
|
import type AppContext from "../components/app_context.js";
|
||||||
import { MOBILE_FLOATING_BUTTONS } from "../widgets/FloatingButtonsDefinitions.jsx";
|
|
||||||
import { useNoteContext } from "../widgets/react/hooks.jsx";
|
|
||||||
import CloseZenModeButton from "../widgets/close_zen_button.js";
|
|
||||||
import FilePropertiesTab from "../widgets/ribbon/FilePropertiesTab.jsx";
|
|
||||||
import FlexContainer from "../widgets/containers/flex_container.js";
|
|
||||||
import FloatingButtons from "../widgets/FloatingButtons.jsx";
|
|
||||||
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
|
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
|
||||||
import MobileDetailMenu from "../widgets/mobile_widgets/mobile_detail_menu.js";
|
import CloseZenModeButton from "../widgets/close_zen_button.js";
|
||||||
import NoteList from "../widgets/collections/NoteList.jsx";
|
import NoteList from "../widgets/collections/NoteList.jsx";
|
||||||
import NoteTitleWidget from "../widgets/note_title.js";
|
|
||||||
import ContentHeader from "../widgets/containers/content_header.js";
|
import ContentHeader from "../widgets/containers/content_header.js";
|
||||||
|
import FlexContainer from "../widgets/containers/flex_container.js";
|
||||||
|
import RootContainer from "../widgets/containers/root_container.js";
|
||||||
|
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
|
||||||
|
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
|
||||||
|
import FloatingButtons from "../widgets/FloatingButtons.jsx";
|
||||||
|
import { MOBILE_FLOATING_BUTTONS } from "../widgets/FloatingButtonsDefinitions.jsx";
|
||||||
|
import LauncherContainer from "../widgets/launch_bar/LauncherContainer.jsx";
|
||||||
|
import MobileDetailMenu from "../widgets/mobile_widgets/mobile_detail_menu.js";
|
||||||
|
import ScreenContainer from "../widgets/mobile_widgets/screen_container.js";
|
||||||
|
import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js";
|
||||||
|
import ToggleSidebarButton from "../widgets/mobile_widgets/toggle_sidebar_button.jsx";
|
||||||
|
import NoteTitleWidget from "../widgets/note_title.js";
|
||||||
import NoteTreeWidget from "../widgets/note_tree.js";
|
import NoteTreeWidget from "../widgets/note_tree.js";
|
||||||
import NoteWrapperWidget from "../widgets/note_wrapper.js";
|
import NoteWrapperWidget from "../widgets/note_wrapper.js";
|
||||||
|
import NoteDetail from "../widgets/NoteDetail.jsx";
|
||||||
|
import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
|
||||||
import QuickSearchWidget from "../widgets/quick_search.js";
|
import QuickSearchWidget from "../widgets/quick_search.js";
|
||||||
|
import { useNoteContext } from "../widgets/react/hooks.jsx";
|
||||||
import ReadOnlyNoteInfoBar from "../widgets/ReadOnlyNoteInfoBar.jsx";
|
import ReadOnlyNoteInfoBar from "../widgets/ReadOnlyNoteInfoBar.jsx";
|
||||||
import RootContainer from "../widgets/containers/root_container.js";
|
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
|
||||||
import ScreenContainer from "../widgets/mobile_widgets/screen_container.js";
|
import FilePropertiesTab from "../widgets/ribbon/FilePropertiesTab.jsx";
|
||||||
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
|
|
||||||
import SearchDefinitionTab from "../widgets/ribbon/SearchDefinitionTab.jsx";
|
import SearchDefinitionTab from "../widgets/ribbon/SearchDefinitionTab.jsx";
|
||||||
import SearchResult from "../widgets/search_result.jsx";
|
import SearchResult from "../widgets/search_result.jsx";
|
||||||
import SharedInfoWidget from "../widgets/shared_info.js";
|
import SharedInfoWidget from "../widgets/shared_info.js";
|
||||||
import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js";
|
|
||||||
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
|
|
||||||
import TabRowWidget from "../widgets/tab_row.js";
|
import TabRowWidget from "../widgets/tab_row.js";
|
||||||
import ToggleSidebarButton from "../widgets/mobile_widgets/toggle_sidebar_button.jsx";
|
|
||||||
import type AppContext from "../components/app_context.js";
|
|
||||||
import NoteDetail from "../widgets/NoteDetail.jsx";
|
|
||||||
import MobileEditorToolbar from "../widgets/type_widgets/text/mobile_editor_toolbar.jsx";
|
import MobileEditorToolbar from "../widgets/type_widgets/text/mobile_editor_toolbar.jsx";
|
||||||
import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
|
import { applyModals } from "./layout_commons.js";
|
||||||
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
|
|
||||||
import LauncherContainer from "../widgets/launch_bar/LauncherContainer.jsx";
|
|
||||||
|
|
||||||
const MOBILE_CSS = `
|
const MOBILE_CSS = `
|
||||||
<style>
|
<style>
|
||||||
@ -194,11 +194,11 @@ export default class MobileLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function FilePropertiesWrapper() {
|
function FilePropertiesWrapper() {
|
||||||
const { note } = useNoteContext();
|
const { note, ntxId } = useNoteContext();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{note?.type === "file" && <FilePropertiesTab note={note} />}
|
{note?.type === "file" && <FilePropertiesTab note={note} ntxId={ntxId} />}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +1,19 @@
|
|||||||
import renderService from "./render.js";
|
import { normalizeMimeTypeForCKEditor } from "@triliumnext/commons";
|
||||||
|
import WheelZoom from 'vanilla-js-wheel-zoom';
|
||||||
|
|
||||||
|
import FAttachment from "../entities/fattachment.js";
|
||||||
|
import FNote from "../entities/fnote.js";
|
||||||
|
import imageContextMenuService from "../menus/image_context_menu.js";
|
||||||
|
import { t } from "../services/i18n.js";
|
||||||
|
import renderText from "./content_renderer_text.js";
|
||||||
|
import renderDoc from "./doc_renderer.js";
|
||||||
|
import { loadElkIfNeeded, postprocessMermaidSvg } from "./mermaid.js";
|
||||||
|
import openService from "./open.js";
|
||||||
import protectedSessionService from "./protected_session.js";
|
import protectedSessionService from "./protected_session.js";
|
||||||
import protectedSessionHolder from "./protected_session_holder.js";
|
import protectedSessionHolder from "./protected_session_holder.js";
|
||||||
import openService from "./open.js";
|
import renderService from "./render.js";
|
||||||
import utils from "./utils.js";
|
|
||||||
import FNote from "../entities/fnote.js";
|
|
||||||
import FAttachment from "../entities/fattachment.js";
|
|
||||||
import imageContextMenuService from "../menus/image_context_menu.js";
|
|
||||||
import { applySingleBlockSyntaxHighlight } from "./syntax_highlight.js";
|
import { applySingleBlockSyntaxHighlight } from "./syntax_highlight.js";
|
||||||
import { loadElkIfNeeded, postprocessMermaidSvg } from "./mermaid.js";
|
import utils from "./utils.js";
|
||||||
import renderDoc from "./doc_renderer.js";
|
|
||||||
import { t } from "../services/i18n.js";
|
|
||||||
import WheelZoom from 'vanilla-js-wheel-zoom';
|
|
||||||
import { normalizeMimeTypeForCKEditor } from "@triliumnext/commons";
|
|
||||||
import renderText from "./content_renderer_text.js";
|
|
||||||
|
|
||||||
let idCounter = 1;
|
let idCounter = 1;
|
||||||
|
|
||||||
@ -152,7 +153,7 @@ function renderImage(entity: FNote | FAttachment, $renderedContent: JQuery<HTMLE
|
|||||||
|
|
||||||
const $img = $("<img>")
|
const $img = $("<img>")
|
||||||
.attr("src", url || "")
|
.attr("src", url || "")
|
||||||
.attr("id", "attachment-image-" + idCounter++)
|
.attr("id", `attachment-image-${ idCounter++}`)
|
||||||
.css("max-width", "100%");
|
.css("max-width", "100%");
|
||||||
|
|
||||||
$renderedContent.append($img);
|
$renderedContent.append($img);
|
||||||
@ -231,14 +232,14 @@ function renderFile(entity: FNote | FAttachment, type: string, $renderedContent:
|
|||||||
|
|
||||||
$downloadButton.on("click", (e) => {
|
$downloadButton.on("click", (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
openService.downloadFileNote(entity.noteId)
|
openService.downloadFileNote(entity, null, null);
|
||||||
});
|
});
|
||||||
$openButton.on("click", async (e) => {
|
$openButton.on("click", async (e) => {
|
||||||
const iconEl = $openButton.find("> .bx");
|
const iconEl = $openButton.find("> .bx");
|
||||||
iconEl.removeClass("bx bx-link-external");
|
iconEl.removeClass("bx bx-link-external");
|
||||||
iconEl.addClass("bx bx-loader spin");
|
iconEl.addClass("bx bx-loader spin");
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
await openService.openNoteExternally(entity.noteId, entity.mime)
|
await openService.openNoteExternally(entity.noteId, entity.mime);
|
||||||
iconEl.removeClass("bx bx-loader spin");
|
iconEl.removeClass("bx bx-loader spin");
|
||||||
iconEl.addClass("bx bx-link-external");
|
iconEl.addClass("bx bx-link-external");
|
||||||
});
|
});
|
||||||
@ -266,7 +267,7 @@ async function renderMermaid(note: FNote | FAttachment, $renderedContent: JQuery
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await loadElkIfNeeded(mermaid, content);
|
await loadElkIfNeeded(mermaid, content);
|
||||||
const { svg } = await mermaid.mermaidAPI.render("in-mermaid-graph-" + idCounter++, content);
|
const { svg } = await mermaid.mermaidAPI.render(`in-mermaid-graph-${ idCounter++}`, content);
|
||||||
|
|
||||||
$renderedContent.append($(postprocessMermaidSvg(svg)));
|
$renderedContent.append($(postprocessMermaidSvg(svg)));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { useNoteBlob, useNoteLabel } from "../react/hooks";
|
|||||||
import { ParentComponent } from "../react/react_utils";
|
import { ParentComponent } from "../react/react_utils";
|
||||||
import { TabContext } from "./ribbon-interface";
|
import { TabContext } from "./ribbon-interface";
|
||||||
|
|
||||||
export default function FilePropertiesTab({ note, ntxId }: TabContext) {
|
export default function FilePropertiesTab({ note, ntxId }: Pick<TabContext, "note" | "ntxId">) {
|
||||||
const [ originalFileName ] = useNoteLabel(note, "originalFileName");
|
const [ originalFileName ] = useNoteLabel(note, "originalFileName");
|
||||||
const canAccessProtectedNote = !note?.isProtected || protected_session_holder.isProtectedSessionAvailable();
|
const canAccessProtectedNote = !note?.isProtected || protected_session_holder.isProtectedSessionAvailable();
|
||||||
const blob = useNoteBlob(note);
|
const blob = useNoteBlob(note);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user