Skip to content

Commit 8e4ed42

Browse files
committed
Command to Start or Stop the tracker
1 parent dad1a89 commit 8e4ed42

File tree

16 files changed

+156
-33
lines changed

16 files changed

+156
-33
lines changed

src/main.ts

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import { Plugin, TFile, Notice, Editor } from "obsidian";
1+
import {
2+
Plugin,
3+
TFile,
4+
Notice,
5+
Editor,
6+
MarkdownSectionInformation,
7+
ButtonComponent,
8+
} from "obsidian";
29
import { defaultSettings, TimeTreeSettings } from "./settings";
310
import { TimeTreeSettingsTab } from "./settings-tab";
411
import { FrontMatterManager } from "./front-matter-manager";
@@ -23,6 +30,14 @@ export default class TimeTreePlugin extends Plugin {
2330

2431
this.addSettingTab(new TimeTreeSettingsTab(this.app, this));
2532

33+
this.addCommand({
34+
id: "start-stop",
35+
name: "Start/Stop Tracker",
36+
callback: async () => {
37+
await this.startStopTracker();
38+
},
39+
});
40+
2641
this.addCommand({
2742
id: "elapsed-time",
2843
name: "Update elapsed time of the current note",
@@ -40,9 +55,9 @@ export default class TimeTreePlugin extends Plugin {
4055
});
4156

4257
this.addCommand({
43-
id: "new-task",
44-
name: "Insert new task",
45-
editorCallback: (editor, view) => {
58+
id: "sub-task",
59+
name: "Insert subtask",
60+
editorCallback: (editor, _) => {
4661
this.insertNewTask(editor);
4762
},
4863
});
@@ -69,13 +84,25 @@ export default class TimeTreePlugin extends Plugin {
6984
this.scheduleComputeTimeTree();
7085
}
7186

87+
async startStopTracker(): Promise<void> {
88+
const btn = document.querySelector(
89+
".simple-time-tracker-btn"
90+
) as HTMLButtonElement | null;
91+
if (btn) {
92+
btn.click();
93+
} else {
94+
new Notice("No Start/Stop button found.");
95+
}
96+
}
97+
7298
async elapsedTime(): Promise<void> {
7399
const activeFile = this.app.workspace.getActiveFile();
74100
if (!activeFile) {
75101
new Notice("No active file found.");
76102
return;
77103
}
78-
const elapsed = await this.calculator.calculateElapsedTime(activeFile);
104+
let elapsed = 0;
105+
elapsed = await this.calculator.calculateElapsedTime(activeFile);
79106
await this.calculator.communicateAscendants(activeFile);
80107
const rootPath = this.settings.rootNotePath;
81108
if (rootPath) {

test-vault/.obsidian/graph.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@
3232
"repelStrength": 20,
3333
"linkStrength": 1,
3434
"linkDistance": 184,
35-
"scale": 0.6488873738523595,
35+
"scale": 0.4016008904932634,
3636
"close": true
3737
}

test-vault/.obsidian/hotkeys.json

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,53 @@
11
{
2-
"app:reload": [
3-
{
4-
"modifiers": ["Mod"],
5-
"key": "R"
6-
}
7-
]
8-
}
2+
"app:reload": [
3+
{
4+
"modifiers": [
5+
"Mod"
6+
],
7+
"key": "R"
8+
}
9+
],
10+
"time-tree:elapsed-time": [
11+
{
12+
"modifiers": [
13+
"Mod",
14+
"Shift"
15+
],
16+
"key": "S"
17+
}
18+
],
19+
"time-tree:sub-task": [
20+
{
21+
"modifiers": [
22+
"Alt"
23+
],
24+
"key": "A"
25+
}
26+
],
27+
"time-tree:compute-time-tree": [
28+
{
29+
"modifiers": [
30+
"Mod",
31+
"Shift"
32+
],
33+
"key": "R"
34+
}
35+
],
36+
"editor:save-file": [],
37+
"time-tree:start-stop": [
38+
{
39+
"modifiers": [
40+
"Mod"
41+
],
42+
"key": "S"
43+
}
44+
],
45+
"simple-time-tracker:insert": [
46+
{
47+
"modifiers": [
48+
"Alt"
49+
],
50+
"key": "S"
51+
}
52+
]
53+
}

test-vault/.obsidian/workspace.json

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,50 @@
1313
"state": {
1414
"type": "markdown",
1515
"state": {
16-
"file": "Tasks/sub/newer-task.md",
16+
"file": "Tasks/level-2a-a.md",
17+
"mode": "source",
18+
"source": false,
19+
"backlinks": true,
20+
"backlinkOpts": {
21+
"collapseAll": false,
22+
"extraContext": false,
23+
"sortOrder": "alphabetical",
24+
"showSearch": false,
25+
"searchQuery": "",
26+
"backlinkCollapsed": false,
27+
"unlinkedCollapsed": true
28+
}
29+
},
30+
"icon": "lucide-file",
31+
"title": "level-2a-a"
32+
}
33+
},
34+
{
35+
"id": "ab2861e261d91c6e",
36+
"type": "leaf",
37+
"state": {
38+
"type": "markdown",
39+
"state": {
40+
"file": "Tasks/sub/test-note.md",
41+
"mode": "source",
42+
"source": false
43+
},
44+
"icon": "lucide-file",
45+
"title": "test-note"
46+
}
47+
},
48+
{
49+
"id": "e0dedde8b73de522",
50+
"type": "leaf",
51+
"state": {
52+
"type": "markdown",
53+
"state": {
54+
"file": "Untitled.md",
1755
"mode": "source",
1856
"source": false
1957
},
2058
"icon": "lucide-file",
21-
"title": "newer-task"
59+
"title": "Untitled"
2260
}
2361
},
2462
{
@@ -45,7 +83,8 @@
4583
"title": "Graph view"
4684
}
4785
}
48-
]
86+
],
87+
"currentTab": 2
4988
}
5089
],
5190
"direction": "vertical"
@@ -189,12 +228,15 @@
189228
"command-palette:Open command palette": false
190229
}
191230
},
192-
"active": "77b1a0575995a7eb",
231+
"active": "e0dedde8b73de522",
193232
"lastOpenFiles": [
194-
"Tasks/root.md",
195-
"Tasks/level-2c-a.md",
233+
"Tasks/sub/test-note.md",
234+
"Untitled.md",
196235
"Tasks/level-2b-c.md",
236+
"Tasks/level-2a-a.md",
197237
"Tasks/sub/newer-task.md",
238+
"Tasks/root.md",
239+
"Tasks/level-2c-a.md",
198240
"Tasks/level-2b-b.md",
199241
"Tasks/level-2c-b.md",
200242
"Tasks/level-1-b.md",
@@ -207,7 +249,6 @@
207249
"Tasks/level-2c-c.md",
208250
"Root/sub",
209251
"Root",
210-
"Tasks/level-2a-a.md",
211252
"level-1-b-1.md",
212253
"level-1-c-1.md",
213254
"level-1-a-1.md"

test-vault/Tasks/level-1-a.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
elapsed_child: 31269
2+
elapsed_child: 39709
33
elapsed: 0
4-
node_size: 24.555734157903416
4+
node_size: 27.89133945170383
55
---
66
# [[level-2a-a]]
77
# [[level-2a-b]]

test-vault/Tasks/level-1-b.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
elapsed_child: 354273
33
elapsed: 0
4-
node_size: 88.52561506094023
4+
node_size: 87.70153116765015
55
---
66
# [[level-2b-a]]
77
# [[level-2b-b]]

test-vault/Tasks/level-1-c.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
elapsed_child: 56447
33
elapsed: 0
4-
node_size: 34.15926230035488
4+
node_size: 33.84970090304885
55
---
66
# [[level-2c-a]]
77
# [[level-2c-b]]

test-vault/Tasks/level-2a-a.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
---
22
elapsed: 5952
3-
elapsed_child: 0
4-
node_size: 6
3+
elapsed_child: 8440
4+
node_size: 14.882815188876675
55
---
6+
# [[test-note]]
7+
68
```simple-time-tracker
79
{"entries":[{"name":"Segment 1","startTime":"2025-03-12T04:47:55.128Z","endTime":"2025-03-12T04:47:57.829Z"},{"name":"Segment 2","startTime":"2025-03-12T04:47:59.594Z","endTime":"2025-03-12T04:48:02.845Z"}]}
810
```

test-vault/Tasks/level-2a-b.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
elapsed: 10085
33
elapsed_child: 0
4-
node_size: 11.338436641205957
4+
node_size: 11.262191975904118
55
---
66
```simple-time-tracker
77
{"entries":[{"name":"Segment 1","startTime":"2025-03-12T04:47:55.128Z","endTime":"2025-03-12T04:47:57.829Z"},{"name":"Segment 2","startTime":"2025-03-12T04:47:59.594Z","endTime":"2025-03-12T04:48:02.845Z"},{"name":"Segment 3","startTime":"2025-03-12T19:36:29.905Z","endTime":"2025-03-12T19:36:32.857Z"},{"name":"Segment 4","startTime":"2025-03-12T19:36:35.891Z","endTime":"2025-03-12T19:36:37.072Z"}]}

test-vault/Tasks/level-2a-c.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
elapsed: 15232
33
elapsed_child: 0
4-
node_size: 15.615031733844807
4+
node_size: 15.490645335418861
55
---
66
```simple-time-tracker
77
{"entries":[{"name":"Segment 1","startTime":"2025-03-12T04:47:55.128Z","endTime":"2025-03-12T04:47:57.829Z"},{"name":"Segment 2","startTime":"2025-03-12T04:47:59.594Z","endTime":"2025-03-12T04:48:02.845Z"},{"name":"Segment 3","startTime":"2025-03-12T17:06:57.419Z","endTime":"2025-03-12T17:07:05.634Z"},{"name":"Segment 4","startTime":"2025-03-12T17:43:01.052Z","endTime":"2025-03-12T17:43:02.117Z"}]}

0 commit comments

Comments
 (0)