Commit Graph

2363 Commits

Author SHA1 Message Date
kolaente
6185e2a3a0 style(sort): add spacing between filter and sort buttons 2026-03-03 13:50:56 +01:00
kolaente
7ba8e26a1c refactor(sort): replace modal with inline popup and improve UX
- Switch from Modal to lightweight Popup component
- Hide sort order picker when Manually (position) is selected
- Sort dropdown options alphabetically, keeping Manually first
- Add description text explaining sort behavior
2026-03-03 13:50:52 +01:00
kolaente
3b2a2fefe4 feat(i18n): rename Position to Manually and add sort description text 2026-03-03 13:50:47 +01:00
kolaente
a0305e47d8 fix: formatting and build 2026-03-03 13:27:39 +01:00
kolaente
d9ae9a2d2e feat(frontend): add sorting modal for list view 2026-03-03 13:27:36 +01:00
kolaente
1d02e76914 fix(deps): remove obsolete flexsearch 0.7.43 patch
The patch fixed missing module/types fields in flexsearch 0.7's
package.json. Version 0.8.212 ships with proper exports, making
the patch unnecessary.
2026-03-03 13:17:24 +01:00
renovate[bot]
4f1830768a fix(deps): update dependency flexsearch to v0.8.212 2026-03-03 13:17:24 +01:00
kolaente
4e79fde17d fix(gantt): render collapse chevron after bars for correct SVG paint order 2026-03-03 13:11:43 +01:00
kolaente
092e8fe45a fix(gantt): remove unreachable hover rule on relation arrows 2026-03-03 13:11:43 +01:00
kolaente
aa6c3d85a7 fix(gantt): clamp collapse chevron x position to prevent negative offset 2026-03-03 13:11:43 +01:00
kolaente
ca808c7a4f fix(gantt): only set hasDerivedDates when children have actual dates 2026-03-03 13:11:43 +01:00
kolaente
f1ab9edf29 fix(gantt): move parent diamonds outward with stroke and remove hover effect 2026-03-03 13:11:43 +01:00
kolaente
f6cac275e2 fix(gantt): make collapse/expand triangle smaller 2026-03-03 13:11:43 +01:00
kolaente
62bb4c33cf fix(gantt): improve parent task bar styling and visual grouping
- Make parent task bars full height (32px) matching regular bars,
  instead of the thin 8px summary bar
- Move collapse/expand chevron to sit right before the bar start
  position so it moves with the task during drag/resize
- Remove fixed-position indent indicator lines
- Add light background band with rounded border to visually group
  parent tasks with their children, sized to fit the bars
2026-03-03 13:11:43 +01:00
kolaente
19d77157e2 fix(gantt): spread overlapping relation arrows at shared endpoints 2026-03-03 13:11:43 +01:00
kolaente
bb5d6dee3f fix(gantt): make relation arrows smaller and dash precedes lines 2026-03-03 13:11:43 +01:00
kolaente
71a2cdbb28 fix(gantt): update relation arrows in real-time during drag and resize 2026-03-03 13:11:43 +01:00
kolaente
df766a0636 fix(gantt): always show relation arrows and fix arrow Y positioning
Remove the toggle checkbox and always render relation arrows.
Wrap rows and arrow overlay in a position:relative container so
arrows anchor to the row area instead of the chart wrapper which
includes the timeline header.
2026-03-03 13:11:43 +01:00
kolaente
5731ce9c76 feat(gantt): wire relation arrows into GanttChart with toggle 2026-03-03 13:11:43 +01:00
kolaente
cd42406850 feat(gantt): create arrow SVG overlay component for relations 2026-03-03 13:11:43 +01:00
kolaente
7fca56a927 feat(gantt): render parent summary bars with diamond endpoints 2026-03-03 13:11:43 +01:00
kolaente
8361c9f301 feat(gantt): add collapse/expand chevron and indent indicators 2026-03-03 13:11:43 +01:00
kolaente
07446dc4e1 feat(gantt): integrate task tree into Gantt rendering with collapse 2026-03-03 13:11:43 +01:00
kolaente
73ced5b7d2 feat(gantt): add dependency arrow data builder 2026-03-03 13:11:43 +01:00
kolaente
1358c87e98 feat(gantt): add task tree builder utility for hierarchy 2026-03-03 13:11:43 +01:00
kolaente
8005a2fb92 feat(gantt): add expand=subtasks to Gantt API params 2026-03-03 13:11:43 +01:00
renovate[bot]
8b5ab62af9 chore(deps): update dev-dependencies 2026-03-03 13:05:59 +01:00
Dominik Pschenitschni
b92735b0e9 feat: mini tiptap improvements
The TipTap editor now uses Vue’s defineModel for its reactive value, simplifies editability control with watchEffect, and correctly types DOM image elements.

Summary

Imported watchEffect and switched to defineModel for the editor’s v-model, removing the old update:modelValue emit

Typed the retrieved image element as HTMLImageElement and removed debugging output from the paste handler

Replaced the watcher controlling editability with a simpler watchEffect and updated model handling to use the new model ref
2026-03-03 13:00:35 +01:00
renovate[bot]
9a4a2eb184 chore(deps): update dev-dependencies 2026-03-03 12:45:12 +01:00
Dominik Pschenitschni
e8a5631ffe feat(frontend): highlight overdue tasks consistently (#958) 2026-03-03 12:37:21 +01:00
Dominik Pschenitschni
0a9586e8d4 feat: use offical vite plugin for sentry (#873) 2026-03-03 12:30:49 +01:00
Dominik Pschenitschni
e1d1e7c848 feat: ensure forms submit on Enter (#959) 2026-03-03 12:28:45 +01:00
kolaente
958bd133fd fix(frontend): use mbs-2 utility class instead of scoped CSS
Replace the scoped .notification-actions rule with the project's
mbs-2 utility class for margin-block-start spacing.
2026-03-03 11:46:18 +01:00
kolaente
59b3dd32ac fix(frontend): use semantic class instead of targeting Tailwind utility
Replace .tw\:flex CSS selector with a .notification-actions class
in Notification.vue, as suggested in review.
2026-03-03 11:46:18 +01:00
kolaente
a08667b669 feat(frontend): upgrade Tailwind CSS from v3 to v4
- Replace tailwindcss v3 with tailwindcss v4 + @tailwindcss/vite plugin
- Create dedicated tailwind.css entry with granular imports (skip preflight)
- Use CSS-first config with prefix(tw) instead of JS config
- Switch from PostCSS plugin to Vite plugin for better performance
- Update class prefix from tw- (dash) to tw: (colon) in all Vue files
- Remove @tailwind directives from global.scss
- Delete tailwind.config.js (replaced by CSS directives)
- Update stylelint at-rules for v4 directives
2026-03-03 11:46:18 +01:00
kolaente
51f789bf5c fix(e2e): drain event handlers and stop browser between tests
Async event handlers (via Watermill) from the previous test can hold
SQLite connections, starving the next test's fixture setup PATCH request.

Three changes fix this:

1. Track in-flight event handler goroutines with a WaitGroup.
2. Call WaitForPendingHandlers() in the test endpoint before
   truncating/inserting data.
3. Navigate the browser to about:blank in fixture teardown to stop
   notification polling and other frontend requests between tests.
2026-03-03 10:41:19 +01:00
kolaente
1ba6a74383 fix(nav): project drag handle position
Resolves https://community.vikunja.io/t/color-ordering-menu-overlapping/4289
2026-03-02 11:38:45 +01:00
Weijie Zhao
7297682cad fix: remove invalidateAvatarCache call that broke request deduplication (#2317)
When multiple avatar components mount with alternating sizes (e.g. 48
and 20), invalidateAvatarCache clears pending requests for ALL sizes of
the same user, causing each call to create a new HTTP request instead of
reusing the pending one.

I noticed this issue when I open a task with 20 comments, the avatar
requests make the service OOM.

<img width="733" height="551" alt="image"
src="https://github.com/user-attachments/assets/db45db31-294c-4363-ad27-38d454b5a6a2"
/>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-02 09:18:20 +01:00
renovate[bot]
648605c066 chore(deps): update dependency @vue/tsconfig to v0.9.0 2026-03-02 09:06:20 +01:00
kolaente
8690332652 chore(deps): upgrade serialize-javascript to 7.0.3 2026-03-02 08:56:08 +01:00
kolaente
15aa773212 fix(frontend): add horizontal overflow handling to tables on mobile
Wraps all tables that were missing overflow handling in a
`has-horizontal-overflow` div to prevent horizontal overflow on mobile
viewports.

Affected components:
- Sessions.vue
- ApiTokens.vue
- ProjectSettingsWebhooks.vue
- LinkSharing.vue
- UserTeam.vue
- EditTeam.vue
- ProjectSettingsViews.vue

Fixes https://github.com/go-vikunja/vikunja/issues/2331
2026-03-02 08:35:35 +01:00
renovate[bot]
cb2647abbe chore(deps): update dev-dependencies 2026-03-02 08:26:16 +01:00
Frederick [Bot]
6076384b1f chore(i18n): update translations via Crowdin 2026-03-01 01:21:13 +00:00
Frederick [Bot]
059958b839 chore(i18n): update translations via Crowdin 2026-02-27 01:10:46 +00:00
kolaente
4cce6ed34c chore(deps): upgrade transitive minimatch from 10.2.1 to 10.2.3+ 2026-02-26 23:33:39 +01:00
kolaente
04590d959c chore(deps): upgrade transitive basic-ftp from 5.0.5 to 5.2.0
Add pnpm override to bump basic-ftp (transitive dependency via
puppeteer/get-uri) from 5.0.5 to 5.2.0.
2026-02-26 23:16:01 +01:00
kolaente
f2a4a40e28 chore(deps): override transitive rollup 2.x to use direct dependency version
Add pnpm override to force all transitive rollup dependencies to use
the direct dependency version (4.59.0), eliminating the old 2.79.2
pulled in by workbox-build.
2026-02-26 23:16:00 +01:00
renovate[bot]
a76ba87939 chore(deps): update dev-dependencies 2026-02-26 22:54:58 +01:00
kolaente
838254bb51 feat(multiselect): add green plus icon and always-visible hint to create option
Make the "create new" option in multiselect dropdowns visually distinct
from regular search results by adding a green plus icon and making the
hint text always visible instead of only on hover.
2026-02-26 17:37:11 +01:00
kolaente
c4ec7f032f feat(checklist): show green progress circle when all checkboxes are done 2026-02-26 17:07:03 +01:00