@@ -4,11 +4,12 @@ import { Setting } from "obsidian";
44import { add_toggle } from "settings/SettingsComponents" ;
55import { StringSuggest } from "settings/suggesters/StringSuggester" ;
66import { InputType , ROLLUP_ACTIONS } from "helpers/Constants" ;
7+ import { recordFieldsFromRelation } from "helpers/RelationHelper" ;
78export class RollupInputHandler extends AbstractHandlerClass < ColumnSettingsHandlerResponse > {
89 settingTitle : string = 'rollup properties' ;
910 handle ( columnHandlerResponse : ColumnSettingsHandlerResponse ) : ColumnSettingsHandlerResponse {
1011 const { column, containerEl, columnSettingsManager } = columnHandlerResponse ;
11- const { view, columnsState } = columnSettingsManager . modal ;
12+ const { view, columnsState, configState } = columnSettingsManager . modal ;
1213 const { config } = column
1314
1415 const persist_rollup_toggle_promise = async ( value : boolean ) : Promise < void > => {
@@ -34,7 +35,7 @@ export class RollupInputHandler extends AbstractHandlerClass<ColumnSettingsHandl
3435 columnSettingsManager . modal . enableReset = true ;
3536 } ;
3637 new Setting ( containerEl )
37- . setName ( "Select relation to rollup " )
38+ . setName ( "Select relation column " )
3839 . setDesc ( 'Select from the existing columns to rollup' )
3940 . addSearch ( ( cb ) => {
4041 new StringSuggest (
@@ -70,15 +71,37 @@ export class RollupInputHandler extends AbstractHandlerClass<ColumnSettingsHandl
7071 . onChange ( rollup_action_promise ) ;
7172 } ) ;
7273 // TODO select key column (if action allows it)
73- // Enable persist rollup toggle
74- add_toggle (
75- containerEl ,
76- "Persist rollup output" ,
77- "Enable/disable to persist rollup output on your notes (Only persisted rollups could be searchable and sortable)" ,
78- config . persist_rollup ,
79- persist_rollup_toggle_promise
80- ) ;
74+ const rollup_key_promise = async ( value : string ) : Promise < void > => {
75+ // Persist on disk
76+ await view . diskConfig . updateColumnConfig ( column . id , {
77+ rollup_key : value
78+ } ) ;
79+ columnSettingsManager . modal . enableReset = true ;
80+ } ;
81+ recordFieldsFromRelation ( "Incidencias/ropa/clothing ddbb.md" , configState . info . getLocalSettings ( ) ) . then ( ( fields ) => {
82+ new Setting ( containerEl )
83+ . setName ( "Select property of relation" )
84+ . setDesc ( 'Select the property to rollup from the relation' )
85+ . addSearch ( ( cb ) => {
86+ new StringSuggest (
87+ cb . inputEl ,
88+ fields
89+ ) ;
90+ cb . setPlaceholder ( "Select property..." )
91+ . setValue ( column . config . rollup_key )
92+ . onChange ( rollup_key_promise ) ;
93+ } ) ;
94+ // Enable persist rollup toggle
95+ add_toggle (
96+ containerEl ,
97+ "Persist rollup output" ,
98+ "Enable/disable to persist rollup output on your notes (Only persisted rollups could be searchable and sortable)" ,
99+ config . persist_rollup ,
100+ persist_rollup_toggle_promise
101+ ) ;
81102
82- return this . goNext ( columnHandlerResponse ) ;
103+ return this . goNext ( columnHandlerResponse ) ;
104+ } ) ;
105+ return null ;
83106 }
84107}
0 commit comments