diff --git a/apps/client/src/widgets/note_list.ts b/apps/client/src/widgets/note_list.ts index 150c4933e..389aa82d3 100644 --- a/apps/client/src/widgets/note_list.ts +++ b/apps/client/src/widgets/note_list.ts @@ -107,6 +107,7 @@ export default class NoteListWidget extends NoteContextAwareWidget { const noteListRenderer = new NoteListRenderer({ $parent: this.$content, parentNote: note, + parentNotePath: this.notePath, noteIds: note.getChildNoteIds() }); this.$widget.toggleClass("full-height", noteListRenderer.isFullHeight); diff --git a/apps/client/src/widgets/view_widgets/table_view/index.ts b/apps/client/src/widgets/view_widgets/table_view/index.ts index 98bc82d81..66af36255 100644 --- a/apps/client/src/widgets/view_widgets/table_view/index.ts +++ b/apps/client/src/widgets/view_widgets/table_view/index.ts @@ -2,7 +2,7 @@ import froca from "../../../services/froca.js"; import ViewMode, { type ViewModeArgs } from "../view_mode.js"; import { createGrid, AllCommunityModule, ModuleRegistry, GridOptions, themeQuartz, colorSchemeDark } from "ag-grid-community"; import attributes, { setLabel } from "../../../services/attributes.js"; -import getPromotedAttributeInformation, { buildColumnDefinitions, buildData, TableData } from "./data.js"; +import getPromotedAttributeInformation, { buildColumnDefinitions, buildData, buildRowDefinitions, TableData } from "./data.js"; import applyHeaderCustomization from "./header-customization.js"; import server from "../../../services/server.js"; import type { GridApi, GridState, Theme } from "ag-grid-community"; @@ -10,6 +10,7 @@ import SpacedUpdate from "../../../services/spaced_update.js"; import branches from "../../../services/branches.js"; import type { CommandListenerData, EventData } from "../../../components/app_context.js"; import type { Attribute } from "../../../services/attribute_parser.js"; +import note_create from "../../../services/note_create.js"; const TPL = /*html*/`
@@ -37,6 +38,7 @@ const TPL = /*html*/`
+
@@ -192,6 +194,15 @@ export default class TableView extends ViewMode { console.log("Save attributes", this.newAttribute); } + addNewRowCommand() { + const parentNotePath = this.args.parentNotePath; + if (parentNotePath) { + note_create.createNote(parentNotePath, { + activate: false + }); + } + } + private getTheme(): Theme { if (window.matchMedia('(prefers-color-scheme: dark)').matches) { return themeQuartz.withPart(colorSchemeDark) @@ -213,6 +224,10 @@ export default class TableView extends ViewMode { }) } + if (loadResults.getBranchRows().some(branch => branch.parentNoteId === this.parentNote.noteId)) { + return true; + } + return false; } diff --git a/apps/client/src/widgets/view_widgets/view_mode.ts b/apps/client/src/widgets/view_widgets/view_mode.ts index c3552e020..f50c7841b 100644 --- a/apps/client/src/widgets/view_widgets/view_mode.ts +++ b/apps/client/src/widgets/view_widgets/view_mode.ts @@ -2,12 +2,12 @@ import type { EventData } from "../../components/app_context.js"; import Component from "../../components/component.js"; import type FNote from "../../entities/fnote.js"; import type { ViewTypeOptions } from "../../services/note_list_renderer.js"; -import type NoteListWidget from "../note_list.js"; import ViewModeStorage from "./view_mode_storage.js"; export interface ViewModeArgs { $parent: JQuery; parentNote: FNote; + parentNotePath: string | null | undefined; noteIds: string[]; showNotePath?: boolean; }