mirror of
https://github.com/Ellpeck/ObsidianSimpleTimeTracker.git
synced 2024-11-28 12:08:34 +01:00
Compare commits
No commits in common. "f308679bd2a9474194c50edc8e65676dd8fe5bb4" and "bd7c35e7fb27ff22b58f794c4403c49d4ee3d027" have entirely different histories.
f308679bd2
...
bd7c35e7fb
2 changed files with 37 additions and 21 deletions
|
@ -319,25 +319,26 @@ function addEditableTableRow(tracker: Tracker, entry: Entry, table: HTMLTableEle
|
|||
|
||||
renderNameAsMarkdown(nameField.label, getFile, component);
|
||||
|
||||
let expandButton = new ButtonComponent(nameField.label)
|
||||
.setClass("clickable-icon")
|
||||
.setClass("simple-time-tracker-expand-button")
|
||||
.setIcon(`chevron-${entry.collapsed ? 'right' : 'down'}`)
|
||||
.setTooltip(entry.collapsed ? "Expand" : "Collapse")
|
||||
.onClick(async () => {
|
||||
if (entry.collapsed) {
|
||||
delete entry.collapsed;
|
||||
} else {
|
||||
entry.collapsed = 1;
|
||||
}
|
||||
await saveTracker(tracker, this.app, getFile(), getSectionInfo());
|
||||
});
|
||||
if (!entry.subEntries?.length) expandButton.buttonEl.style.visibility = 'hidden';
|
||||
let nameWrapper = nameField.cell.createDiv({cls: "simple-time-tracker-table-expandwrapper"});
|
||||
nameWrapper.style.marginLeft = nameField.label.style.marginLeft;
|
||||
nameField.label.style.marginLeft = null;
|
||||
nameWrapper.insertBefore(expandButton.buttonEl, null);
|
||||
nameWrapper.insertBefore(nameField.label, null);
|
||||
if (entry.subEntries?.length) {
|
||||
let expandButton = new ButtonComponent(nameField.label)
|
||||
.setClass("clickable-icon")
|
||||
.setClass("simple-time-tracker-expand-button")
|
||||
.setIcon(`chevron-${entry.collapsed ? 'right' : 'down'}`)
|
||||
.setTooltip(entry.collapsed ? "Expand" : "Collapse")
|
||||
.onClick(async () => {
|
||||
if (entry.collapsed) {
|
||||
delete entry.collapsed;
|
||||
} else {
|
||||
entry.collapsed = 1;
|
||||
}
|
||||
await saveTracker(tracker, this.app, getFile(), getSectionInfo());
|
||||
});
|
||||
let nameWrapper = nameField.cell.createDiv({cls: "simple-time-tracker-table-expandwrapper"});
|
||||
nameWrapper.style.marginLeft = nameField.label.style.marginLeft;
|
||||
nameField.label.style.marginLeft = null;
|
||||
nameWrapper.insertBefore(nameField.label, null);
|
||||
nameWrapper.insertBefore(expandButton.buttonEl, null);
|
||||
}
|
||||
|
||||
let entryButtons = row.createEl("td");
|
||||
entryButtons.addClass("simple-time-tracker-table-buttons");
|
||||
|
@ -357,7 +358,6 @@ function addEditableTableRow(tracker: Tracker, entry: Entry, table: HTMLTableEle
|
|||
.onClick(async () => {
|
||||
if (nameField.editing()) {
|
||||
entry.name = nameField.endEdit();
|
||||
expandButton.buttonEl.style.display = null;
|
||||
startField.endEdit();
|
||||
entry.startTime = startField.getTimestamp();
|
||||
if (!entryRunning) {
|
||||
|
@ -370,7 +370,6 @@ function addEditableTableRow(tracker: Tracker, entry: Entry, table: HTMLTableEle
|
|||
renderNameAsMarkdown(nameField.label, getFile, component);
|
||||
} else {
|
||||
nameField.beginEdit(entry.name);
|
||||
expandButton.buttonEl.style.display = 'none';
|
||||
// only allow editing start and end times if we don't have sub entries
|
||||
if (!entry.subEntries) {
|
||||
startField.beginEdit(entry.startTime);
|
||||
|
|
17
styles.css
17
styles.css
|
@ -79,3 +79,20 @@
|
|||
.simple-time-tracker-table tr:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.simple-time-tracker-table :is(td,th):first-child {
|
||||
/* HACKY hardcoded 2em to make room for expand/collapse button */
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
.simple-time-tracker-table-expandwrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.simple-time-tracker-expand-button {
|
||||
position: absolute;
|
||||
/* HACKY there should be a better way to position this */
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translate(-100%, -50%);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue