mirror of
https://github.com/tailormade-eu/obsidian-task-export-plugin.git
synced 2026-07-22 06:41:42 +00:00
Address Obsidian plugin review feedback for version 1.0.2
Co-authored-by: RaoulJacobs <18635340+RaoulJacobs@users.noreply.github.com>
This commit is contained in:
parent
02a9a5e0c3
commit
cd731a4231
6 changed files with 34 additions and 31 deletions
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "task-export-to-csv",
|
||||
"name": "Task Export Tool",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Export outstanding tasks to CSV for time tracking integration (e.g. ManicTime).",
|
||||
"author": "Raoul Jacobs",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "obsidian-task-export-plugin",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"description": "Export outstanding tasks from Obsidian vault to CSV for ManicTime integration",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ export class TaskExporter {
|
|||
}
|
||||
|
||||
if (verbose) {
|
||||
console.log(`Processing: ${customerName} / ${projectName}`);
|
||||
console.debug(`Processing: ${customerName} / ${projectName}`);
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -63,7 +63,7 @@ export class TaskExporter {
|
|||
allTasks.push(...tasks);
|
||||
|
||||
if (verbose) {
|
||||
console.log(` Found ${tasks.length} task(s)`);
|
||||
console.debug(` Found ${tasks.length} task(s)`);
|
||||
}
|
||||
}
|
||||
} catch (ex) {
|
||||
|
|
|
|||
|
|
@ -81,13 +81,13 @@ export default class TaskExportPlugin extends Plugin {
|
|||
// Update file watcher state
|
||||
this.updateFileWatcher();
|
||||
|
||||
console.log('Task Export Plugin loaded');
|
||||
console.debug('Task Export Plugin loaded');
|
||||
}
|
||||
|
||||
onunload() {
|
||||
// Disable file watcher
|
||||
this.fileWatcher.disable();
|
||||
console.log('Task Export Plugin unloaded');
|
||||
console.debug('Task Export Plugin unloaded');
|
||||
}
|
||||
|
||||
async loadSettings() {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { App, PluginSettingTab, Setting } from 'obsidian';
|
||||
import { PluginSettingTab, Setting } from 'obsidian';
|
||||
import TaskExportPlugin from './main';
|
||||
|
||||
/**
|
||||
|
|
@ -7,7 +7,7 @@ import TaskExportPlugin from './main';
|
|||
export class TaskExportSettingTab extends PluginSettingTab {
|
||||
plugin: TaskExportPlugin;
|
||||
|
||||
constructor(app: App, plugin: TaskExportPlugin) {
|
||||
constructor(app: any, plugin: TaskExportPlugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
|
@ -17,7 +17,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
|
||||
containerEl.empty();
|
||||
|
||||
containerEl.createEl('h2', { text: 'Task Export Tool Settings' });
|
||||
new Setting(containerEl)
|
||||
.setName('Task Export Tool Settings')
|
||||
.setHeading();
|
||||
|
||||
// Output Path
|
||||
new Setting(containerEl)
|
||||
|
|
@ -26,9 +28,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.addText(text => text
|
||||
.setPlaceholder('outstanding_tasks.csv')
|
||||
.setValue(this.plugin.settings.outputPath)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.outputPath = value || 'outstanding_tasks.csv';
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Customers Folder
|
||||
|
|
@ -38,9 +40,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.addText(text => text
|
||||
.setPlaceholder('Customers')
|
||||
.setValue(this.plugin.settings.customersFolder)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.customersFolder = value || 'Customers';
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
this.plugin.updateFileWatcher();
|
||||
}));
|
||||
|
||||
|
|
@ -50,9 +52,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setDesc('Automatically export tasks when files change')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.settings.autoExport)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.autoExport = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
this.plugin.updateFileWatcher();
|
||||
}));
|
||||
|
||||
|
|
@ -62,9 +64,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setDesc('Trigger export when files are saved')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.settings.exportOnSave)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.exportOnSave = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Export on Modify
|
||||
|
|
@ -73,9 +75,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setDesc('Trigger export when files are modified (more frequent)')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.settings.exportOnModify)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.exportOnModify = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Show Notifications
|
||||
|
|
@ -84,9 +86,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setDesc('Display notifications on export completion')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.settings.showNotifications)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.showNotifications = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Compress Levels
|
||||
|
|
@ -95,9 +97,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setDesc('Remove empty hierarchy columns from CSV output')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.settings.compressLevels)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.compressLevels = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Include Header
|
||||
|
|
@ -106,22 +108,22 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setDesc('Include CSV header row in output')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.settings.includeHeader)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.includeHeader = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// CSV Delimiter
|
||||
new Setting(containerEl)
|
||||
.setName('CSV Delimiter')
|
||||
.setName('CSV delimiter')
|
||||
.setDesc('Choose delimiter for CSV output. Comma is standard, semicolon is common in Europe.')
|
||||
.addDropdown(dropdown => dropdown
|
||||
.addOption(',', 'Comma (,)')
|
||||
.addOption(';', 'Semicolon (;)')
|
||||
.setValue(this.plugin.settings.delimiter)
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.delimiter = value as ',' | ';';
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Debounce Delay
|
||||
|
|
@ -132,9 +134,9 @@ export class TaskExportSettingTab extends PluginSettingTab {
|
|||
.setLimits(1, 30, 1)
|
||||
.setValue(this.plugin.settings.debounceDelay)
|
||||
.setDynamicTooltip()
|
||||
.onChange(async (value) => {
|
||||
.onChange((value) => {
|
||||
this.plugin.settings.debounceDelay = value;
|
||||
await this.plugin.saveSettings();
|
||||
void this.plugin.saveSettings();
|
||||
this.plugin.updateFileWatcher();
|
||||
}));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"1.0.0": "1.0.0",
|
||||
"1.0.1": "1.0.0"
|
||||
"1.0.1": "1.0.0",
|
||||
"1.0.2": "1.0.0"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue