Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export interface AgileTaskNotesSettings {
teamLeaderMode: boolean;
azureDevopsSettings: AzureDevopsSettings;
jiraSettings: JiraSettings;
TaskTitleSeparator: string;
}

const DEFAULT_SETTINGS: AgileTaskNotesSettings = {
Expand All @@ -26,6 +27,7 @@ const DEFAULT_SETTINGS: AgileTaskNotesSettings = {
teamLeaderMode: false,
azureDevopsSettings: AZURE_DEVOPS_DEFAULT_SETTINGS,
jiraSettings: JIRA_DEFAULT_SETTINGS,
TaskTitleSeparator: '-',
};

export default class AgileTaskNotesPlugin extends Plugin {
Expand Down Expand Up @@ -156,7 +158,7 @@ export class AgileTaskNotesPluginSettingTab extends PluginSettingTab {
new Setting(containerEl)
.setName('Note Name')
.setDesc(
'Set the format of the file name for each task note. Available variables: {{TASK_ID}}, {{TASK_TYPE}}, {{TASK_STATE}}, {{TASK_ASSIGNEDTO}}'
'Set the format of the file name for each task note. Available variables: {{TASK_ID}}, {{TASK_TYPE}}, {{TASK_STATE}}, {{TASK_ASSIGNEDTO}}, {{TASK_TITLE}}, {{TASK_TITLEPART_0}}, {{TASK_TITLEPART_1}}, {{TASK_TITLEPART_2}}\n Note: Titleparts that are empty will default to the whole title'
)
.addText((text) =>
text
Expand All @@ -168,6 +170,21 @@ export class AgileTaskNotesPluginSettingTab extends PluginSettingTab {
})
);

new Setting(containerEl)
.setName('TaskTitle Separator')
.setDesc(
'Seperator that seperates the title parts in {{TASK_TITLEPART_0}}, {{TASK_TITLEPART_1}}, {{TASK_TITLEPART_2}}/n'
)
.addText((text) =>
text
.setPlaceholder('-')
.setValue(plugin.settings.TaskTitleSeparator)
.onChange(async (value) => {
plugin.settings.TaskTitleSeparator = value;
await plugin.saveSettings();
})
);

new Setting(containerEl)
.setName('Update interval')
.setDesc(
Expand Down
17 changes: 16 additions & 1 deletion src/VaultHelper.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { App, Notice, TFile } from 'obsidian';
import { Task } from './Task';
import { AgileTaskNotesSettings } from 'main';

export class VaultHelper {
private static BOARD_TEMPLATE_START: string = '---\n\nkanban-plugin: basic\n\n---\n\n';
Expand Down Expand Up @@ -128,17 +129,31 @@ export class VaultHelper {
}

private static async createTaskNote(
settings: AgileTaskNotesSettings,
path: string,
task: Task,
template: string,
notename: string,
app: App
): Promise<TFile> {

let taskTitleArray = task.title.split(settings.TaskTitleSeparator);
let taskTitlePart0 = taskTitleArray[0] ?? task.title;
let taskTitlePart1 = taskTitleArray[1] ?? task.title;
let taskTitlePart2 = taskTitleArray[2] ?? task.title;

let filename = notename
.replace(/{{TASK_ID}}/g, task.id)
.replace(/{{TASK_STATE}}/g, task.state)
.replace(/{{TASK_TYPE}}/g, task.type.replace(/ /g, ''))
.replace(/{{TASK_ASSIGNEDTO}}/g, task.assignedTo);
.replace(/{{TASK_ASSIGNEDTO}}/g, task.assignedTo)
.replace(/{{TASK_TITLE}}/g, task.title)
.replace(/{{TASK_TITLEPART_0}}/g, taskTitlePart0)
.replace(/{{TASK_TITLEPART_1}}/g, taskTitlePart1)
.replace(/{{TASK_TITLEPART_2}}/g, taskTitlePart2);

//remove illegal filename characters from filename
filename = filename.replace(/[<>:"/\\|?*]/g, "");

const filepath = path + `/${filename}.md`;

Expand Down