2022-09-28 13:18:37 +02:00
import { App , PluginSettingTab , Setting } from "obsidian" ;
2022-09-27 15:36:25 +02:00
import SimpleTimeTrackerPlugin from "./main" ;
2022-09-28 13:18:37 +02:00
import { defaultSettings } from "./settings" ;
2022-09-27 15:36:25 +02:00
export class SimpleTimeTrackerSettingsTab extends PluginSettingTab {
plugin : SimpleTimeTrackerPlugin ;
constructor ( app : App , plugin : SimpleTimeTrackerPlugin ) {
super ( app , plugin ) ;
this . plugin = plugin ;
}
display ( ) : void {
this . containerEl . empty ( ) ;
2022-09-27 22:15:16 +02:00
this . containerEl . createEl ( "h2" , { text : "Super Simple Time Tracker Settings" } ) ;
2022-09-27 15:36:25 +02:00
2022-09-28 13:18:37 +02:00
new Setting ( this . containerEl )
. setName ( "Timestamp Display Format" )
. setDesc ( createFragment ( f = > {
f . createSpan ( { text : "The way that timestamps in time tracker tables should be displayed. Uses " } ) ;
f . createEl ( "a" , { text : "moment.js" , href : "https://momentjs.com/docs/#/parsing/string-format/" } ) ;
2022-09-28 14:09:21 +02:00
f . createSpan ( { text : " syntax." } ) ;
2022-09-28 13:18:37 +02:00
} ) )
. addText ( t = > {
t . setValue ( String ( this . plugin . settings . timestampFormat ) ) ;
t . onChange ( async v = > {
this . plugin . settings . timestampFormat = v . length ? v : defaultSettings.timestampFormat ;
await this . plugin . saveSettings ( ) ;
} ) ;
} ) ;
2022-09-27 15:36:25 +02:00
2022-09-28 14:09:21 +02:00
new Setting ( this . containerEl )
. setName ( "CSV Delimiter" )
. setDesc ( "The delimiter character that should be used when copying a tracker table as CSV. For example, some languages use a semicolon instead of a comma." )
. addText ( t = > {
t . setValue ( String ( this . plugin . settings . csvDelimiter ) ) ;
t . onChange ( async v = > {
this . plugin . settings . csvDelimiter = v . length ? v : defaultSettings.csvDelimiter ;
await this . plugin . saveSettings ( ) ;
} ) ;
} ) ;
2022-09-27 15:36:25 +02:00
this . containerEl . createEl ( "hr" ) ;
this . containerEl . createEl ( "p" , { text : "If you like this plugin and want to support its development, you can do so through my website by clicking this fancy image!" } ) ;
this . containerEl . createEl ( "a" , { href : "https://ellpeck.de/support" } )
. createEl ( "img" , { attr : { src : "https://ellpeck.de/res/generalsupport.png" } , cls : "simple-time-tracker-support" } ) ;
}
}