Prompt: There's an error in dashboard: Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') at dashboard:1162:44

Session
Total cost:            $10.03 (costs may be inaccurate due to usage of unknown models)
Total duration (API):  1h 22m 7s
Total duration (wall): 2h 25m 27s
Total code changes:    4142 lines added, 257 lines removed

Usage by model:
qwen/qwen3.6-35b-a3b:  462.1k input, 119.9k output, 22.5m cache read, 0 cache write ($9.95)
claude-haiku-4-5:  9.4k input, 13.3k output, 8.3k cache read, 0 cache write ($0.0767)

Runtime: llamacpp
Model: Qwen 3.6 35B A3B Q4 K M
Coding Agent: ClaudeCode
This commit is contained in:
Darius Rapalis
2026-04-29 12:28:54 +03:00
parent 646b803721
commit 3e867b999b
2 changed files with 1273 additions and 19 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -934,7 +934,9 @@
return `${h}:${m}:${s}`;
}
document.getElementById('start-timer-btn').addEventListener('click', function () {
const startTimerBtn = document.getElementById('start-timer-btn');
if (startTimerBtn) {
startTimerBtn.addEventListener('click', function () {
if (!timerInterval) {
timerInterval = setInterval(() => {
timerSeconds++;
@@ -949,8 +951,11 @@
this.style.opacity = '1';
}
});
}
document.getElementById('save-timer').addEventListener('click', function () {
const saveTimerBtn = document.getElementById('save-timer');
if (saveTimerBtn) {
saveTimerBtn.addEventListener('click', function () {
const name = document.getElementById('timer-entry-name').value.trim();
if (!name) {
alert('Please enter a task name.');
@@ -959,6 +964,7 @@
// TODO: Save time entry via API
alert('Time entry saved: ' + name);
});
}
// === Organization modal ===
function createOrganization() {
@@ -1011,27 +1017,36 @@
});
});
document.getElementById('org-name').addEventListener('input', function () {
document.getElementById('org-error').style.display = 'none';
});
const orgNameEl = document.getElementById('org-name');
if (orgNameEl) {
orgNameEl.addEventListener('input', function () {
document.getElementById('org-error').style.display = 'none';
});
document.getElementById('org-name').addEventListener('keydown', function (e) {
if (e.key === 'Enter') {
e.preventDefault();
createOrganization();
}
});
orgNameEl.addEventListener('keydown', function (e) {
if (e.key === 'Enter') {
e.preventDefault();
createOrganization();
}
});
}
// === Dropdown toggles ===
document.getElementById('org-switcher-trigger')?.addEventListener('click', function (e) {
e.stopPropagation();
document.getElementById('org-dropdown-menu').classList.toggle('show');
});
const orgSwitcher = document.getElementById('org-switcher-trigger');
if (orgSwitcher) {
orgSwitcher.addEventListener('click', function (e) {
e.stopPropagation();
document.getElementById('org-dropdown-menu').classList.toggle('show');
});
}
document.getElementById('profile-trigger')?.addEventListener('click', function (e) {
e.stopPropagation();
document.getElementById('profile-dropdown-menu').classList.toggle('show');
});
const profileTrigger = document.getElementById('profile-trigger');
if (profileTrigger) {
profileTrigger.addEventListener('click', function (e) {
e.stopPropagation();
document.getElementById('profile-dropdown-menu').classList.toggle('show');
});
}
document.addEventListener('click', function () {
document.getElementById('org-dropdown-menu')?.classList.remove('show');