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

Commit 9fe7a3a

Browse files
committed
fixing query possible columns
1 parent 5f5c39e commit 9fe7a3a

File tree

9 files changed

+34
-32
lines changed

9 files changed

+34
-32
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/cellTypes/TagsCell.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ const TagsCell = (tagsProps: CellComponentProps) => {
116116
isSearchable
117117
isMulti
118118
autoFocus
119-
openMenuOnFocus
119+
//openMenuOnFocus
120120
menuPosition="fixed"
121121
styles={CustomTagsStyles}
122122
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/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
}

src/settings/handlers/columns/TemplateColumnsHandler.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import { DatabaseColumn } from "cdm/DatabaseModel";
12
import { RowDataType } from "cdm/FolderModel";
23
import { obtainColumnsFromFile, obtainColumnsFromRows } from "components/Columns";
4+
import { DEFAULT_COLUMN_CONFIG, InputType } from "helpers/Constants";
35
import { resolve_tfile } from "helpers/FileManagement";
46
import { t } from "lang/helpers";
57
import { Notice, Setting } from "obsidian";
@@ -69,12 +71,25 @@ export class TemplateColumnsHandler extends AbstractSettingsHandler {
6971
button.setIcon("save")
7072
.setTooltip(t("settings_template_all_button_tooltip"))
7173
.onClick(async (): Promise<void> => {
74+
const recordColumns: Record<string, DatabaseColumn> = {};
7275
const allColumns = await obtainColumnsFromRows(
7376
view,
7477
view.diskConfig.yaml.config,
7578
view.diskConfig.yaml.filters,
7679
columns);
77-
view.diskConfig.yaml.columns = allColumns;
80+
81+
allColumns.forEach((key, index) => {
82+
recordColumns[key] = {
83+
input: InputType.TEXT,
84+
accessorKey: key,
85+
label: key,
86+
key: key,
87+
id: key,
88+
position: index,
89+
config: DEFAULT_COLUMN_CONFIG,
90+
}
91+
})
92+
view.diskConfig.yaml.columns = recordColumns;
7893
view.diskConfig.saveOnDisk();
7994
new Notice(t("settings_template_all_notice_success_on_save", Object.keys(columns).length.toString()), 1500);
8095
});

0 commit comments

Comments
 (0)