Commit Graph

42 Commits

Author SHA1 Message Date
kolaente ceb62c63d3 refactor(gantt): extract GanttBarDateType as reusable type 2026-02-18 23:04:21 +01:00
kolaente eefa48052b feat(gantt): add dateType field to GanttBarModel meta 2026-02-18 23:04:21 +01:00
kolaente 6afb166dd2
feat: add shortcut to quickly copy task identifier, title and url to clipboard (#2028)
This adds the following shortcuts:

- `.` to copy the task identifier
- `..` to copy the task identifier and title
- `...` to copy the task identifier, title, and url
- `Control + .` to copy the task url
2025-12-28 10:54:41 +01:00
Copilot 9bc67032c3
fix: validate coordinates before elementsFromPoint on Firefox mobile (#1992)
Firefox mobile drag events can provide non-finite coordinate values
(`undefined`, `NaN`, `Infinity`) which cause
`document.elementsFromPoint()` to throw: "Argument 1 is not a finite
floating-point value."

**Changes**
- Added `Number.isFinite()` validation in `findProjectIdAtPosition()`
before calling `elementsFromPoint()`
- Returns `null` when coordinates are invalid, gracefully aborting the
drop operation

```typescript
function findProjectIdAtPosition(mouseX: number, mouseY: number): number | null {
	// Validate coordinates are finite numbers (required by elementsFromPoint)
	if (!Number.isFinite(mouseX) || !Number.isFinite(mouseY)) {
		return null
	}

	const elementsUnderMouse = document.elementsFromPoint(mouseX, mouseY)
	// ... rest of implementation
}
```

The caller already handles `null` returns appropriately, treating it as
"no valid drop target found."

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-12-16 23:05:42 +00:00
kolaente 1288d0a99c
feat: make sidebar resizable (#1965)
Closes: #525

* Sidebar width is now adjustable via dragging
* The width is automatically saved to settings and restored across sessions.
2025-12-12 10:46:46 +00:00
kolaente 4aae270694
feat(tasks): move tasks between projects with drag and drop (#1945)
Drag and drop tasks between projects from list and kanban views, with cross-project move handling and success notification. With visual drop-target highlighting when hovering a project during a drag.
2025-12-10 18:59:38 +00:00
kolaente 566ff99e6c
fix(editor): prevent upload overlay from intercepting text drag operations (#1890) 2025-11-27 17:49:38 +00:00
kolaente f7acdf4ac1
fix: don't try to switch to project 0 when reloading the page (#1855) 2025-11-26 23:28:05 +01:00
kolaente 4a2f961a77 fix: ContentAuth types 2025-11-22 17:23:03 +01:00
kolaente 85fc8fffd4 feat: restrict attachment drop to files
Resolves https://github.com/go-vikunja/vikunja/issues/1663
2025-11-16 12:22:30 +01:00
kolaente abbf2ce183 chore: copy useDropZone from vueuse 2025-11-16 12:22:30 +01:00
Copilot 650fb94978
feat: add time display with configurable format (12h/24h) to non-relative date formats (#1807)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-11-13 08:57:06 +00:00
kolaente 2977a11a2c
fix: show cross-project subtasks in List view (#1649) 2025-10-13 18:43:40 +02:00
kolaente 0dee1789a2
fix(filter): ensure filter query param is added to the page correctly (#1471) 2025-09-11 15:24:12 +00:00
kolaente 8ce8d445ba
fix(kanban): guard task modal race conditions (#1472) 2025-09-11 17:15:57 +02:00
Copilot 14e1bd2f55
fix: prevent null history.state errors in modal routing and task navigation (#1368) 2025-08-31 19:14:25 +00:00
kolaente 5fc255cb36
feat(gantt): rebuild the gantt chart (#1001) 2025-08-12 16:33:50 +02:00
kolaente b444cf8d43
feat: add display setting for dates (#1192) 2025-07-30 09:43:37 +02:00
kolaente a26fb787f9
fix(labels): correctly fall back to variable colors when no label color is set (#1124) 2025-07-15 21:15:09 +00:00
Dominik Pschenitschni 454418ee63 chore: fix indentation 2025-06-19 10:53:35 +02:00
Dominik Pschenitschni b1c200c9aa
feat(frontend): improve route filter generics (#953) 2025-06-16 22:40:09 +02:00
Dominik Pschenitschni 78fa5742c3
fix: guard null access in composables (#951) 2025-06-16 16:02:59 +02:00
Dominik Pschenitschni bb9dc03351
fix: add newline at end of line (#827) 2025-05-24 13:57:47 +02:00
Dominik Pschenitschni cb8fd09824 feat: make time reactive (#2627)
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2627
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Dominik Pschenitschni <mail@celement.de>
Co-committed-by: Dominik Pschenitschni <mail@celement.de>
2025-01-20 13:28:49 +00:00
Dominik Pschenitschni c7e708cf7d fix: deprecated import in useTitle 2025-01-19 20:07:55 +00:00
kolaente 9aca4ca0f6
fix(favorites): do not return subtasks on favorites page
This fixes an issue where all subtasks of a tasks would show up on the favorites page, even if they were not marked as favorite.

Resolves https://github.com/go-vikunja/vikunja/issues/375
2024-12-10 14:31:28 +01:00
Dominik Pschenitschni 44c659aa34 feat: move useProjectBackground to composables 2024-11-10 15:17:38 +00:00
kolaente 703c641aeb fix: lint issues 2024-10-29 09:57:53 +00:00
kolaente 526bd1f170
fix(filters): reload tasks silently when marking one done in the list
This fixes a UI issue where if a user had a filter set and marked the task done, it would not disappear, even though the filter does not match the done task anymore.
2024-07-18 15:51:03 +02:00
Dominik Pschenitschni 9fd17aca18 fix: useTitle types (#2369)
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2369
Co-authored-by: Dominik Pschenitschni <mail@celement.de>
Co-committed-by: Dominik Pschenitschni <mail@celement.de>
2024-06-11 20:36:47 +00:00
Dominik Pschenitschni 917cbf9cb6 fix(vue): toValue instead of unref 2024-06-10 13:53:13 +00:00
kolaente 6e5b31f1e0
fix(filters): always persist filter or search in query path and load it correctly into filter query input when loading the page
Previously, when using the filter query as a search input, it would load the search as requested but the filter query parameter in the url would be empty, which meant the search would not be loaded correctly when reloading (or otherwise newly accessing) the page. We're now persisting the filter and search in the task loading logic, to make sure they are always populated correctly.
2024-04-13 23:34:25 +02:00
kolaente 4b903c4f48
fix(views): lint 2024-03-19 00:47:52 +01:00
kolaente bc34a33922
fix(views): move to new project view when moving tasks 2024-03-19 00:47:49 +01:00
kolaente cf15cc6f12
feat(views): fetch tasks via view context when accessing them through views 2024-03-19 00:47:47 +01:00
kolaente e097721817
fix(tasks): use correct filter query when filtering 2024-03-11 16:39:27 +01:00
kolaente a66e26678e
feat(filters): pass timezone down when filtering with relative date math
Resolves https://community.vikunja.io/t/my-vikunja-instance-creates-tasks-with-due-date-time-of-9am-for-tasks-with-the-word-today-word-in-it/2105/8
2024-03-11 16:28:25 +01:00
kolaente 4e6e0608c7
fix(filters): lint 2024-03-09 20:08:17 +01:00
kolaente b35eb4adbf
fix(filter): correctly pass down options 2024-03-09 19:07:30 +01:00
kolaente c162a5a457
feat(filter): add auto resize for filter query input 2024-03-09 19:06:52 +01:00
kolaente ee065d9238
feat(tasks): make done at column available for selection in table view
This change adds the done at column of tasks to the table view. It also ensures it is possible to sort the tasks by that column.

https://community.vikunja.io/t/is-it-possible-to-list-done-tasks-with-their-completion-date/1922
2024-02-12 17:56:24 +01:00
kolaente fc4676315d
chore: move frontend files 2024-02-07 14:56:56 +01:00