Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

Commit 1765bb1

Browse files
committed
Merge branch 'pattern_improvements'
2 parents 52bbc52 + 27136c0 commit 1765bb1

File tree

13 files changed

+55
-48
lines changed

13 files changed

+55
-48
lines changed

src/components/Columns.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ export async function obtainColumnsFromRows(
153153
ddbbConfig: LocalSettings,
154154
filters: FilterSettings,
155155
tableColumns: TableColumn[]
156-
): Promise<Record<string, DatabaseColumn>> {
157-
const columns: Record<string, DatabaseColumn> = {};
156+
): Promise<string[]> {
157+
const columns: string[] = [];
158158
const rows = await obtainAllPossibleRows(
159159
view.file.parent.path,
160160
ddbbConfig,
@@ -190,15 +190,7 @@ export async function obtainColumnsFromRows(
190190
// Check metadata columns to not be added
191191
.filter((key) => validateColumnKey(key))
192192
.forEach((key, index) => {
193-
columns[key] = {
194-
input: InputType.TEXT,
195-
accessorKey: key,
196-
label: key,
197-
key: key,
198-
id: key,
199-
position: index,
200-
config: DEFAULT_COLUMN_CONFIG,
201-
};
193+
columns.push(key);
202194
});
203195

204196
return columns;

src/components/NavBar.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,19 @@ export function NavBar(navBarProps: NavBarProps) {
2323
);
2424

2525
const updateBar = () => {
26+
if (!view.plugin.statusBarItem) {
27+
view.plugin.statusBarItem = view.plugin.addStatusBarItem();
28+
}
2629
view.plugin.statusBarItem.replaceChildren();
2730
view.plugin.statusBarItem.createEl("span", {
2831
text: `${table.getFilteredRowModel().rows.length}/${view.rows.length} '${
2932
view.diskConfig.yaml.name
3033
}'`,
3134
});
3235
};
33-
// Control
36+
37+
// Bar status control
3438
useEffect(() => {
35-
if (!view.plugin.statusBarItem) {
36-
view.plugin.statusBarItem = view.plugin.addStatusBarItem();
37-
}
3839
updateBar();
3940
}, [table.getFilteredRowModel().rows.length]);
4041

src/components/cellTypes/TagsCell.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ const TagsCell = (tagsProps: CellComponentProps) => {
116116
isSearchable
117117
isMulti
118118
autoFocus
119-
openMenuOnFocus
120119
menuPosition="fixed"
121120
styles={CustomTagsStyles}
122121
options={columnOptions}

src/components/modals/filters/handlers/DataviewFiltersComponent.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { DataviewFiltersProps } from "cdm/ComponentsModel";
2-
import { DatabaseColumn } from "cdm/DatabaseModel";
32
import { obtainColumnsFromRows } from "components/Columns";
43
import React, { useEffect, useState } from "react";
54
import { FilterGroupCondition } from "cdm/SettingsModel";
@@ -15,7 +14,7 @@ const DataviewFiltersComponent = (props: DataviewFiltersProps) => {
1514
const [possibleColumns, setPossibleColumns] = useState([] as string[]);
1615

1716
useEffect(() => {
18-
new Promise<Record<string, DatabaseColumn>>((resolve, reject) => {
17+
new Promise<string[]>((resolve) => {
1918
// Empty conditions to refresh the dataview
2019
const emptyFilterConditions = { ...filters };
2120
emptyFilterConditions.conditions = [];
@@ -28,9 +27,7 @@ const DataviewFiltersComponent = (props: DataviewFiltersProps) => {
2827
)
2928
);
3029
}).then((columns) => {
31-
setPossibleColumns(
32-
Object.keys(columns).sort((a, b) => a.localeCompare(b))
33-
);
30+
setPossibleColumns(columns.sort((a, b) => a.localeCompare(b)));
3431
});
3532
}, []);
3633

src/components/modals/newColumn/handlers/AddExistingColumnHandler.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { DatabaseColumn } from "cdm/DatabaseModel";
21
import { AddColumnModalHandlerResponse } from "cdm/ModalsModel";
32
import { obtainColumnsFromRows } from "components/Columns";
43
import { DynamicInputType, MetadataColumns } from "helpers/Constants";
@@ -20,7 +19,7 @@ export class AddExistingColumnHandler extends AbstractHandlerClass<AddColumnModa
2019
typesRecord[value] = t(value);
2120
});
2221

23-
const promiseOfObtainColumnsFromRows = new Promise<Record<string, DatabaseColumn>>((resolve) => {
22+
const promiseOfObtainColumnsFromRows = new Promise<string[]>((resolve) => {
2423
resolve(obtainColumnsFromRows(
2524
addColumnModalManager.addColumnModal.view,
2625
configState.info.getLocalSettings(),
@@ -32,11 +31,11 @@ export class AddExistingColumnHandler extends AbstractHandlerClass<AddColumnModa
3231
typeOfNewColumn = value;
3332
}
3433

35-
promiseOfObtainColumnsFromRows.then((columnsRaw: Record<string, DatabaseColumn>) => {
34+
promiseOfObtainColumnsFromRows.then((columnsRaw: string[]) => {
3635
// Filter out the columns that are already in the table
37-
const currentColumns = (columnState.info.getValueOfAllColumnsAsociatedWith('id') as string[]).map(id => id);
36+
const currentColumns = (columnState.info.getValueOfAllColumnsAsociatedWith('id') as string[]).map(id => id.toLowerCase());
3837
const filteredColumns: Record<string, string> = {};
39-
Object.keys(columnsRaw)
38+
columnsRaw
4039
.sort((a, b) => a.localeCompare(b))
4140
.filter((columnName: string) => {
4241
return !currentColumns.includes(columnName.toLowerCase())

src/components/reducers/DataviewFilters.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { DataviewFiltersProps } from "cdm/ComponentsModel";
2-
import { DatabaseColumn } from "cdm/DatabaseModel";
32
import { obtainColumnsFromRows } from "components/Columns";
43
import MenuDownIcon from "components/img/MenuDownIcon";
54
import { FiltersModal } from "components/modals/filters/FiltersModal";
@@ -18,7 +17,7 @@ export default function EditFiltersButton(props: DataviewFiltersProps) {
1817
const columns = tableState.columns((state) => state.columns);
1918

2019
const openFiltersGroupHandler = async () => {
21-
new Promise<Record<string, DatabaseColumn>>((resolve, reject) => {
20+
new Promise<string[]>((resolve, reject) => {
2221
// Empty conditions to refresh the dataview
2322
const emptyFilterConditions = { ...filters };
2423
emptyFilterConditions.conditions = [];
@@ -33,9 +32,7 @@ export default function EditFiltersButton(props: DataviewFiltersProps) {
3332
}).then((columns) => {
3433
new FiltersModal({
3534
table,
36-
possibleColumns: Object.keys(columns).sort((a, b) =>
37-
a.localeCompare(b)
38-
),
35+
possibleColumns: columns.sort((a, b) => a.localeCompare(b)),
3936
}).open();
4037
});
4138
};

src/main.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -429,14 +429,12 @@ export default class DBFolderPlugin extends Plugin {
429429
*/
430430
this.registerEvent(app.workspace.on("active-leaf-change", () => {
431431
const activeView = app.workspace.getActiveViewOfType(DatabaseView);
432-
if (!activeView) {
432+
if (!activeView && this.statusBarItem) {
433433
this.statusBarItem.detach();
434434
this.statusBarItem = null;
435435
}
436-
else if (this.statusBarItem) {
436+
else if (activeView && this.statusBarItem) {
437437
activeView.handleUpdateStatusBar();
438-
} else {
439-
this.statusBarItem = this.addStatusBarItem();
440438
}
441439
}));
442440
}
@@ -529,7 +527,6 @@ export default class DBFolderPlugin extends Plugin {
529527

530528
// Ribbon Icon
531529
this.showRibbonIcon();
532-
533530
}
534531

535532
showRibbonIcon() {

src/parsers/RowDatabaseFieldsToFile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const parseInlineFieldsToString = (inlineFields: RowDatabaseFields): stri
2828
}
2929

3030
export function parseValuetoSanitizeYamlValue(value: string, localSettings: LocalSettings, wrapQuote = false): string {
31-
return ParseService.parseLiteral(value, InputType.MARKDOWN, localSettings, undefined, wrapQuote).toString();
31+
return ParseService.parseLiteral(value, InputType.MARKDOWN, localSettings, false, wrapQuote).toString();
3232
}
3333

3434
function stringifyDbYaml(literal: Literal, level: number, localSettings: LocalSettings, key?: string): string[] {

src/parsers/handlers/unmarshall/UnmarshallConfigHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export class UnmarshallConfigHandler extends AbstractDiskHandler {
1919
this.localDisk.push(`${YAML_INDENT.repeat(2)}${key}: ${parseValuetoSanitizeYamlValue(valueInternal as string, config)}`);
2020
});
2121
} else if (typeof valueConfig === "string") {
22-
this.localDisk.push(`${YAML_INDENT.repeat(1)}${key}: ${parseValuetoSanitizeYamlValue(escapeSpecialCharacters(valueConfig), config, true)}`);
22+
this.localDisk.push(`${YAML_INDENT.repeat(1)}${key}: "${parseValuetoSanitizeYamlValue(escapeSpecialCharacters(valueConfig), config, true)}"`);
2323
} else {
2424
// Lvl2: config properties
2525
this.localDisk.push(`${YAML_INDENT.repeat(1)}${key}: ${parseValuetoSanitizeYamlValue(valueConfig, config)}`);

src/services/NoteInfo.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { MetadataColumns } from "helpers/Constants";
33
import { TFile } from "obsidian";
44
import { resolve_tfile } from "helpers/FileManagement";
55
import { NoteInfoPage } from "cdm/DatabaseModel";
6+
import { DataviewService } from "./DataviewService";
67
/**
78
* Keep info about a note and offer methods to manipulate it
89
*/
@@ -52,11 +53,12 @@ export default class NoteInfo {
5253
__note__: this
5354
}
5455
/** Optional fields */
56+
const record = DataviewService.getDataviewAPI().page(this.filepath);
5557
/** Parse data with the type of column */
56-
Object.keys(this.page)
58+
Object.keys(record)
5759
.filter(key => !["file"].includes(key))
5860
.forEach(property => {
59-
aFile[property] = this.page[property];
61+
aFile[property] = record[property];
6062
});
6163
return aFile;
6264
}

0 commit comments

Comments
 (0)