diff --git a/apps/client/src/widgets/view_widgets/table_view/columns.ts b/apps/client/src/widgets/view_widgets/table_view/columns.ts index 69349b1cc..5bfc51b8e 100644 --- a/apps/client/src/widgets/view_widgets/table_view/columns.ts +++ b/apps/client/src/widgets/view_widgets/table_view/columns.ts @@ -1,7 +1,7 @@ import { RelationEditor } from "./relation_editor.js"; import { NoteFormatter, NoteTitleFormatter, RowNumberFormatter } from "./formatters.js"; import { applyHeaderMenu } from "./header-menu.js"; -import type { ColumnDefinition } from "tabulator-tables"; +import type { ColumnDefinition, Tabulator } from "tabulator-tables"; import { LabelType } from "../../../services/promoted_attribute_definition_parser.js"; type ColumnType = LabelType | "relation"; @@ -42,7 +42,7 @@ const labelTypeMappings: Record> = { } }; -export function buildColumnDefinitions(info: AttributeDefinitionInformation[], existingColumnData?: ColumnDefinition[]) { +export function buildColumnDefinitions(info: AttributeDefinitionInformation[], movableRows: boolean, existingColumnData?: ColumnDefinition[]) { const columnDefs: ColumnDefinition[] = [ { title: "#", @@ -50,7 +50,7 @@ export function buildColumnDefinitions(info: AttributeDefinitionInformation[], e hozAlign: "center", resizable: false, frozen: true, - rowHandle: true, + rowHandle: movableRows, formatter: RowNumberFormatter }, { diff --git a/apps/client/src/widgets/view_widgets/table_view/formatters.ts b/apps/client/src/widgets/view_widgets/table_view/formatters.ts index 1994ab236..136539652 100644 --- a/apps/client/src/widgets/view_widgets/table_view/formatters.ts +++ b/apps/client/src/widgets/view_widgets/table_view/formatters.ts @@ -37,7 +37,12 @@ export function NoteTitleFormatter(cell: CellComponent) { } export function RowNumberFormatter(cell: CellComponent) { - return ` ` + cell.getRow().getPosition(true); + let html = ""; + if (cell.getColumn().getDefinition().rowHandle) { + html += ` `; + } + html += cell.getRow().getPosition(true); + return html; } function buildNoteLink(noteId: string) { 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 713417a46..1c3e65d24 100644 --- a/apps/client/src/widgets/view_widgets/table_view/index.ts +++ b/apps/client/src/widgets/view_widgets/table_view/index.ts @@ -124,9 +124,9 @@ export default class TableView extends ViewMode { const viewStorage = await this.viewStorage.restore(); this.persistentData = viewStorage?.tableData || {}; - const columnDefs = buildColumnDefinitions(info); const { definitions: rowData, hasChildren } = await buildRowDefinitions(this.parentNote, info); const movableRows = canReorderRows(this.parentNote) && !hasChildren; + const columnDefs = buildColumnDefinitions(info, movableRows); this.api = new Tabulator(el, { layout: "fitDataFill", @@ -249,7 +249,7 @@ export default class TableView extends ViewMode { } const info = getAttributeDefinitionInformation(this.parentNote); - const columnDefs = buildColumnDefinitions(info, this.persistentData?.columns); + const columnDefs = buildColumnDefinitions(info, !!this.api.options.movableRows, this.persistentData?.columns); this.api.setColumns(columnDefs); }