1+ import { DatabaseView } from "DatabaseView" ;
12import { SourceDataTypes } from "helpers/Constants" ;
2- import { getAllTags } from "obsidian" ;
3- import { DataviewService } from "services/DataviewService" ;
4- import { LOGGER } from "services/Logger" ;
53import { AbstractSettingsHandler , SettingHandlerResponse } from "settings/handlers/AbstractSettingHandler" ;
64import { add_dropdown } from "settings/SettingsComponents" ;
75
@@ -11,30 +9,53 @@ export class SourceFormHandler extends AbstractSettingsHandler {
119 const { containerEl, view } = settingHandlerResponse ;
1210 switch ( view . diskConfig . yaml . config . source_data ) {
1311 case SourceDataTypes . TAG :
14- const tagArray : Record < string , number > = ( app . metadataCache as unknown as any ) . getTags ( ) ;
15- if ( tagArray ) {
16- const tagRecords : Record < string , string > = { } ;
17- Object . keys ( tagArray ) . forEach ( ( tag ) => {
18- tagRecords [ tag ] = tag ;
19- } ) ;
20- const source_form_promise = async ( value : string ) : Promise < void > => {
21- // update settings
22- view . diskConfig . updateConfig ( 'source_form_result' , value . slice ( 1 ) ) ;
23- } ;
12+ tagHandler ( view , containerEl ) ;
13+ break ;
14+ case SourceDataTypes . OUTGOING_LINK :
15+ case SourceDataTypes . INCOMING_LINK :
16+ const filePaths : Record < string , string > = { }
17+ app . vault . getMarkdownFiles ( ) . forEach ( file => { filePaths [ file . path ] = file . basename } ) ;
18+ const source_form_promise = async ( value : string ) : Promise < void > => {
19+ // update settings
20+ view . diskConfig . updateConfig ( 'source_form_result' , value ) ;
21+ } ;
2422
25- add_dropdown (
26- containerEl ,
27- 'Select a tag' ,
28- 'Select tag to get data from' ,
29- `#${ view . diskConfig . yaml . config . source_form_result } ` ,
30- tagRecords ,
31- source_form_promise
32- ) ;
33- }
23+ add_dropdown (
24+ containerEl ,
25+ 'Select a tag' ,
26+ 'Select tag to get data from' ,
27+ `#${ view . diskConfig . yaml . config . source_form_result } ` ,
28+ filePaths ,
29+ source_form_promise
30+ ) ;
31+ break ;
3432 default :
3533 //Current folder
3634 }
3735
3836 return this . goNext ( settingHandlerResponse ) ;
3937 }
38+ }
39+
40+ function tagHandler ( view : DatabaseView , containerEl : HTMLElement ) {
41+ const tagArray : Record < string , number > = ( app . metadataCache as unknown as any ) . getTags ( ) ;
42+ if ( tagArray ) {
43+ const tagRecords : Record < string , string > = { } ;
44+ Object . keys ( tagArray ) . forEach ( ( tag ) => {
45+ tagRecords [ tag ] = tag ;
46+ } ) ;
47+ const source_form_promise = async ( value : string ) : Promise < void > => {
48+ // update settings
49+ view . diskConfig . updateConfig ( 'source_form_result' , value . slice ( 1 ) ) ;
50+ } ;
51+
52+ add_dropdown (
53+ containerEl ,
54+ 'Select a tag' ,
55+ 'Select tag to get data from' ,
56+ `#${ view . diskConfig . yaml . config . source_form_result } ` ,
57+ tagRecords ,
58+ source_form_promise
59+ ) ;
60+ }
4061}
0 commit comments