1- import { SMarkdownPage } from "obsidian-dataview" ;
1+ import { DataArray , Literal , SMarkdownPage } from "obsidian-dataview" ;
22import { DataviewService } from "services/DataviewService" ;
3- import { DatabaseCore } from "helpers/Constants" ;
3+ import { DatabaseCore , DEFAULT_SETTINGS } from "helpers/Constants" ;
44import { resolve_tfile } from "helpers/FileManagement" ;
55import DatabaseInfo from "services/DatabaseInfo" ;
6- import { sourceDataviewPages } from "helpers/VaultManagement" ;
6+ import { adapterTFilesToRows , sourceDataviewPages } from "helpers/VaultManagement" ;
77import { LocalSettings } from "cdm/SettingsModel" ;
8- import { TableColumn } from "cdm/FolderModel" ;
9- import { obtainColumnsFromRows } from "components/Columns" ;
8+ import { RowDataType , TableColumn } from "cdm/FolderModel" ;
9+ import { obtainColumnsFromFolder , obtainColumnsFromRows } from "components/Columns" ;
10+ import { TFile } from "obsidian" ;
1011
1112/**
1213 * Search for all databases in the vault returning a Record of all databases
@@ -23,20 +24,25 @@ export function recordAllDatabases(): Record<string, string> {
2324 } ) ;
2425 return avaliableDDBB ;
2526}
27+ type RelationInfo = {
28+ recordRows : Record < string , string > ;
29+ ddbbFile : TFile ,
30+ ddbbInfo : DatabaseInfo ,
31+ relatedColumns : TableColumn [ ] ,
32+ relatedRows : RowDataType [ ]
33+ }
2634
27- export async function recordRowsFromRelation ( ddbbPath : string , ddbbConfig : LocalSettings , columns ?: TableColumn [ ] ) : Promise < Record < string , string > > {
28- const relationRows : Record < string , string > = { } ;
35+ export async function obtainInfoFromRelation ( ddbbPath : string ) : Promise < RelationInfo > {
36+ const recordRows : Record < string , string > = { } ;
2937 const ddbbFile = resolve_tfile ( ddbbPath ) ;
30- const ddbbInfo = await new DatabaseInfo ( ddbbFile , ddbbConfig ) . build ( ) ;
31-
32- const ddbbRows = await sourceDataviewPages ( ddbbInfo . yaml . config , ddbbFile . parent . path , columns ) ;
33- ddbbRows
34- . filter ( ( page ) => ! page [ DatabaseCore . FRONTMATTER_KEY ] )
35- . forEach ( ( page ) => {
36- const file = ( page as SMarkdownPage ) . file ;
37- relationRows [ file . path ] = file . name ;
38- } ) ;
39- return relationRows ;
38+ const ddbbInfo = await new DatabaseInfo ( ddbbFile , DEFAULT_SETTINGS . local_settings ) . build ( ) ;
39+ const relatedColumns = await obtainColumnsFromFolder ( ddbbInfo . yaml . columns ) ;
40+ const relatedRows = await adapterTFilesToRows ( ddbbFile , relatedColumns , ddbbInfo . yaml . config , ddbbInfo . yaml . filters ) ;
41+ relatedRows . forEach ( ( row ) => {
42+ const file = row . __note__ . getFile ( )
43+ recordRows [ file . path ] = file . name ;
44+ } ) ;
45+ return { recordRows, ddbbFile, ddbbInfo, relatedColumns, relatedRows }
4046}
4147
4248export async function recordFieldsFromRelation ( ddbbPath : string , ddbbConfig : LocalSettings , columns ?: TableColumn [ ] ) : Promise < Record < string , string > > {
0 commit comments