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

Commit 80e7462

Browse files
committed
relations supported for dv queries source
1 parent 1ed0497 commit 80e7462

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

src/components/cellTypes/Editor/RelationEditor.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const RelationEditor = (props: RelationEditorComponentProps) => {
1515
const tableColumn = column.columnDef as TableColumn;
1616
const { tableState } = table.options.meta;
1717
const configInfo = tableState.configState((state) => state.info);
18+
const columnsInfo = tableState.columns((state) => state.info);
1819

1920
const [relationValue, setRelationValue] = useState(
2021
relationCell
@@ -47,13 +48,15 @@ const RelationEditor = (props: RelationEditorComponentProps) => {
4748
const relationRowsCallBack = useCallback(async () => {
4849
const relationRows = await recordRowsFromRelation(
4950
tableColumn.config.related_note_path,
50-
configInfo.getLocalSettings()
51+
configInfo.getLocalSettings(),
52+
columnsInfo.getAllColumns()
5153
);
5254
const multiOptions = Object.entries(relationRows).map(([key, value]) => ({
5355
label: value,
5456
value: key,
5557
color: "var(--text-normal)",
5658
}));
59+
5760
setRelationOptions(multiOptions);
5861
}, []);
5962

src/components/modals/columnSettings/handlers/rollups/RollupKeyHandler.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export class RollupKeyHandler extends AbstractHandlerClass<ColumnSettingsHandler
2727
};
2828
recordFieldsFromRelation(
2929
relationColumn.config.related_note_path,
30-
configState.info.getLocalSettings()
30+
configState.info.getLocalSettings(),
31+
allColumns
3132
).then((fields) => {
3233
new Setting(containerEl)
3334
.setName(this.settingTitle)

src/helpers/RelationHelper.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { resolve_tfile } from "helpers/FileManagement";
55
import DatabaseInfo from "services/DatabaseInfo";
66
import { sourceDataviewPages } from "helpers/VaultManagement";
77
import { LocalSettings } from "cdm/SettingsModel";
8+
import { TableColumn } from "cdm/FolderModel";
89

910
/**
1011
* Search for all databases in the vault returning a Record of all databases
@@ -25,12 +26,12 @@ export function recordAllDatabases(currentPath?: string): Record<string, string>
2526
return avaliableDDBB;
2627
}
2728

28-
export async function recordRowsFromRelation(ddbbPath: string, ddbbConfig: LocalSettings): Promise<Record<string, string>> {
29+
export async function recordRowsFromRelation(ddbbPath: string, ddbbConfig: LocalSettings, columns?: TableColumn[]): Promise<Record<string, string>> {
2930
const relationRows: Record<string, string> = {};
3031
const ddbbFile = resolve_tfile(ddbbPath);
3132
const ddbbInfo = new DatabaseInfo(ddbbFile);
3233
ddbbInfo.initDatabaseconfigYaml(ddbbConfig);
33-
const ddbbRows = await sourceDataviewPages(ddbbConfig, ddbbFile.parent.path);
34+
const ddbbRows = await sourceDataviewPages(ddbbConfig, ddbbFile.parent.path, columns);
3435
ddbbRows
3536
.filter((page) => page[DatabaseCore.FRONTMATTER_KEY] === undefined)
3637
.forEach((page) => {
@@ -40,12 +41,12 @@ export async function recordRowsFromRelation(ddbbPath: string, ddbbConfig: Local
4041
return relationRows;
4142
}
4243

43-
export async function recordFieldsFromRelation(ddbbPath: string, ddbbConfig: LocalSettings): Promise<Record<string, string>> {
44+
export async function recordFieldsFromRelation(ddbbPath: string, ddbbConfig: LocalSettings, columns?: TableColumn[]): Promise<Record<string, string>> {
4445
const relationFields: Record<string, string> = {};
4546
const ddbbFile = resolve_tfile(ddbbPath);
4647
const ddbbInfo = new DatabaseInfo(ddbbFile);
4748
ddbbInfo.initDatabaseconfigYaml(ddbbConfig);
48-
const ddbbRows = await sourceDataviewPages(ddbbConfig, ddbbFile.parent.path);
49+
const ddbbRows = await sourceDataviewPages(ddbbConfig, ddbbFile.parent.path, columns);
4950
// get unique fields from all rows
5051
ddbbRows.forEach((page) => {
5152
// iterate over all fields in the row

0 commit comments

Comments
 (0)