Commit graph

48 commits

Author SHA1 Message Date
Chris
bfeffa069f
Fix an issue with task not completing in TaskDetails view (#620)
* Fix test issues

* Fix uid issue

* Fix id wrong param

* Fix test issues

* fixup! Fix test issues

* fixup! fixup! Fix test issues

* fixup! fixup! fixup! Fix test issues

* fixup! fixup! fixup! fixup! Fix test issues
2025-11-30 14:51:49 +02:00
Chris
18c7785b13
Feat notifications (#594)
* Add notifications for deferred and due tasks

* Cleanup

* fixup! Cleanup

* Add notifications settings

* ADd dismissed for notifications

* Beautify project cards

* fixup! Beautify project cards

* Fix an issue with icon badge

* Cleanup scripts

* fixup! Cleanup scripts
2025-11-25 21:16:21 +02:00
Chris
75a1e68730
Tc refactor pt1 (#589)
* Refactor ProfileSettings

* Cleanup comments

* Refactor TaskDetails

* Refactor InboxModal

* fixup! Refactor InboxModal

* Fix project layout

* Add visuals to project details

* Refactor projectdetails

* Remake project metrics

* Complete project details refactor

* Fix note issues and enhance view

* Add filters

* Fix project tasks filters

* Add filters to task lists

* Add filters to task lists

* fixup! Add filters to task lists
2025-11-23 21:48:49 +02:00
Chris
6fb87ac80a
Feat refactor tasks pt1 (#536)
* Refactor swagger docs

* Scaffold refactor

* Refactor crud tasks

* fixup! Refactor crud tasks

* Break down task layout

* fixup! Break down task layout

* fixup! fixup! Break down task layout

* Cleanup comments

* fixup! Cleanup comments

* Cleanup obsolete code

* Remove helpers
2025-11-15 14:02:06 +02:00
Chris
bdc6e1e71f
API Access (#495)
* Scaffold API docs

* fixup! Scaffold API docs

* Add versioning

* Scaffold API Access

* fixup! Scaffold API Access

* fixup! fixup! Scaffold API Access

* Remove DEBUG logs, add tests

* fixup! Remove DEBUG logs, add tests

* Add rate limiter

* Only enable swagger in development

* Update docs

* fixup! Update docs

* fixup! fixup! Update docs

* Fix issue with markdown table headers
2025-11-07 15:19:30 +02:00
Chris Veleris
4aa9220879 Fix showing edit/delete buttons for owners 2025-10-13 11:09:19 +03:00
Chris Veleris
5160ab6955 Tweak UI for feature 2025-10-13 11:09:19 +03:00
antanst
5ae05a9e68 Linting. 2025-10-09 11:39:30 +03:00
antanst
f4214c40da Security fixes: Add auth to upload, fix SQL injection, improve error logging
Critical security improvements:
- Add requireAuth middleware to /api/upload/project-image endpoint (prevents unauthenticated file uploads)
- Fix SQL injection vulnerability in tasks.js DELETE route by whitelisting table names
- Add missing resource existence check in shares.js POST endpoint (prevents permissions on non-existent resources)

Code quality improvements:
- Replace all console.error with logError across all route files for consistent logging
- Import logError service in all route modules

All tests passing (597 passed).
2025-10-09 11:38:26 +03:00
antanst
1fa221db54 Merge chrisvel/main into pro/user-perms
- Keep :uid endpoints throughout (not :id)
- Keep hasAccess middleware for permission checks
- Keep logError instead of console.error
- Add Note orphaning in project deletion
- Merge area attributes (include uid)
- Merge project store update on delete
- Use uid in test data-testids
2025-10-09 11:15:02 +03:00
Chris
26d4fba70d
Fix project notes deletion (#396)
* Fix note deletion and modal

* Fix orphan notes issue

* Fix project areas filtering

* fixup! Fix project areas filtering
2025-10-07 06:16:42 +03:00
Antonis
4fa2aa91bf
Fix E2E test breakage (#380)
* Add logging placeholder functions, fix notes.js uids

* Add UIDs to inbox items. Includes migration.

* Add UID to users.

* Add project UIDs usage.

* Add script that runs specific E2E test(s)

* Only run Chromium E2E tests by default.

* Fix breaking E2E tests

* fixup! Fix breaking E2E tests

---------

Co-authored-by: antanst <>
Co-authored-by: Chris Veleris <chrisveleris@gmail.com>
2025-10-05 16:04:46 +03:00
antanst
fde4b1cdb1 Fix fe user uid 2025-10-05 10:56:05 +03:00
Chris Veleris
e2fa78b830 Fix an issue with areas filter and uid 2025-10-04 22:09:28 +03:00
antanst
3cbe594588 merge fixes. 2025-10-03 14:16:01 +03:00
antanst
1a500663ed Merge branch 'cleanups' into pro/user-perms 2025-10-02 15:42:42 +03:00
antanst
33eb2ce7a9 Fix breaking E2E tests 2025-10-02 12:20:45 +03:00
antanst
4522ed7716 Add project UIDs usage. 2025-10-02 12:20:45 +03:00
Chris
9d2b1895af
Feat/add project states (#354)
* Scaffold project states

* fixup! Scaffold project states

* Fix blinking project modal

* fixup! Fix blinking project modal

* fixup! fixup! Fix blinking project modal

* Fix an issue with the tag input autosuggest

* fixup! Fix an issue with the tag input autosuggest

* fixup! fixup! Fix an issue with the tag input autosuggest

* Add state to project details

* fixup! Add state to project details

* Add state indicator on project cards

* fixup! Add state indicator on project cards
2025-09-29 16:04:25 +03:00
Antonis
70956f9ecd
Change tags to use uids instead of ids. (#351)
* Small cleanups

* Change tags to use uid instead of id.

---------

Co-authored-by: antanst <>
2025-09-22 17:10:29 +03:00
antanst
fec2a115b8 Linting. 2025-09-22 15:20:46 +03:00
antanst
b8611d9338 chore(lint): remove unnecessary try/catch and tighten error handling
- Projects: remove superfluous try/catch around toast; keep explicit error path
- AdminUsers/Sidebar/ShareService: keep minimal catch blocks only to ignore non-JSON parse failures, without swallowing errors
- Lint/format pass remains green
2025-09-22 15:20:46 +03:00
antanst
22cf2ccf00 frontend: implement project sharing UI and guards; backend: secure share APIs and enrich shares listing
- Add project share modal and service; wire Share menu and hide for non-owners
- Show emails in shares list; label access levels clearly
- Enforce owner/admin-only grant/revoke on share endpoints
- Include project user_id in list/detail responses for ownership checks
- Show 'Permission denied' toast on forbidden project/task edits/deletes; avoid blank state on failure
2025-09-22 15:20:46 +03:00
antanst
11a72ced72 projects: return 403 Forbidden on unauthorized mutations
Drop legacy 404-on-forbidden behavior by removing forbiddenStatus override in hasAccess for PATCH/DELETE. Update integration tests to expect 403 and 'Forbidden' when accessing others' projects.
2025-09-22 15:20:46 +03:00
Chris Veleris
f456fd982f Allow note deletion 2025-09-18 12:57:28 +03:00
Chris
d8cd794a0c
Small fixes (#320)
* Fix upcoming view

* Fix to show areas projects

* fixup! Fix to show areas projects

* Fix symbol validation for tags

* Add hash to allowed characters for tag names

* Fix project deletion constraints

* fixup! Fix project deletion constraints

* Fix search functionality in All Tasks view

* fixup! Fix search functionality in All Tasks view

* Fix task save not refreshing list
2025-09-12 12:39:03 +03:00
Chris
699a118bb6
Limit recurring tasks in tasks list view (#298)
* Limit recurring tasks in tasks list view

* Fix upcoming not showing tasks

* Fix upcoming path
2025-09-04 17:00:33 +03:00
Chris Veleris
27d41aaeed Setup slugify and fix nanoid issues 2025-08-08 23:14:40 +03:00
antanst
ade694da4c Deduplicate validateTagName function. 2025-08-06 19:49:27 +03:00
antanst
c3e8449a25 Standardize UID implementation across backend
- Add unified UID column migration for all entities
- Create centralized UID generation utility
- Update all models to use standardized UID hooks
- Fix route handlers to support UID-based lookups
- Update slug utilities for consistent UID extraction
- Fix tag tests to use query parameters instead of path params
- Configure Jest for better TypeScript support
2025-08-06 15:54:45 +03:00
Chris Veleris
3599bc2b60 Add nanoid 2025-08-04 23:50:53 +03:00
Chris Veleris
1f70be8387 Fix project modal issues 2025-08-01 18:06:50 +03:00
Chris Veleris
6f4df2ed5a Fix an issue with completed project tasks 2025-07-23 12:22:06 +03:00
Chris Veleris
af653d2d2b Fix subtask issues on project view 2025-07-23 12:22:06 +03:00
Antonis Anastasiadis
4051824e7a
Configurable upload path. (#191)
* Add necessary migrations for project model.

* Add a few tests for project model new columns.

* make upload location into a configurable

* fix uploadDir path

* use config in app.js

* Change upload env var naming

* Add upload env var to Docker files

---------

Co-authored-by: antanst <>
Co-authored-by: vhsdream <punk.sand7393@fastmail.com>
2025-07-22 15:23:03 +03:00
Chris
bd6d176666
Add sorting projects (#175)
* Add sorting dropdown to projects list

* Fix lint issues

* fixup! Fix lint issues

* Fix new task space and completed expose

* Fix completed switch and filters

* Fix an issue with projects not appearing as links

* Fix an issue with modal appearing relative to task list

* Remove obsolete loads

* Fix list issues

* Fix mobile/desktop settings dropdown functionality

* Update project modal layout

* Realign project options

* Fix tags dropdown in Project modal

* Fix inbox amount sidebar layout

* Fix project banner tags listing

* Remove icons from titles

* Fix lint errors

* fixup! Fix lint errors

* fixup! fixup! Fix lint errors

* Beautify notes and areas

* Experiment with new notes layout

* fixup! Experiment with new notes layout

* fixup! fixup! Experiment with new notes layout

* Fix note layout

* fixup! Fix note layout

* Fix an issue with adding an area and refreshing
the area list

* Fix an issue with project edit delete menu

* fixup! Fix an issue with project edit delete menu

* Fix an issue with projects create

* Update interaction with Notes

* Update interaction with tags

* fixup! Update interaction with tags

* Fix lint issues

* Extract shared filter

* Add sorting dropdown translations

* fixup! Add sorting dropdown translations

* fixup! fixup! Add sorting dropdown translations
2025-07-21 18:41:11 +03:00
Antonis Anastasiadis
4878c71618 Lint & format (#159)
Co-authored-by: antanst <>
2025-07-15 10:44:02 +03:00
Chris Veleris
efacfe7a5d Fix an issue with projects and move plus icon 2025-07-07 12:39:07 +03:00
Chris Veleris
38aa11ec2e Fix Task and Note modals 2025-07-06 22:45:31 +03:00
Chris Veleris
ab29ba6aef Add a fix for project tasks tags 2025-07-05 23:58:36 +03:00
Antonis Anastasiadis
e594d1075b
Linting cleanup (#99)
* Add eslint and prettier dependencies and configs

* Lint project.
2025-07-01 11:40:09 +03:00
Chris
03f38f05dc
Setup intelligence (#84)
* Add next suggestions and remove console logs

* Add pomodoro timer

* Add pomodoro switch in settings

* Fix pomodoro setting

* Add timezones to settings

* Fix an issue with password reset

* Cleanup

* Sort tags alphabetically

* Clean up today's view

* Add an indicator for repeatedly added to today

* Refactor tags

* Add due date today item

* Move recurrence to the subtitle area

* Fix today layout

* Add a badge to Inbox items

* Move inbox badge to sidebar

* Add quotes and progress bar

* Add translations for quotes

* Fix test issues

* Add helper script for docker local

* Set up overdue tasks

* Add  linux/arm/v7 build to deploy script

* Add  linux/arm/v7 build to deploy script pt2

* Fix an issue with helmet and SSL

* Add volume db persistence

* Fix cog icon issues
2025-06-27 14:02:18 +03:00
Chris Veleris
8f5fd05926 Move recurring elements together 2025-06-20 12:04:36 +03:00
Chris Veleris
de94aa9a26 Add image banner to project 2025-06-19 23:30:47 +03:00
Chris Veleris
e72d8daea8 Fix several small issues 2025-06-19 22:49:06 +03:00
Chris
f3610137f0
Scaffold recurring task layout (#83)
* Scaffold recurring task layout

* Cleanup
2025-06-19 16:56:38 +03:00
Chris Veleris
eddd149218 Fix an issue with grouped projects 2025-06-18 22:54:50 +03:00
Chris
3c1209a5a9
Express migration (#80)
* Initial migration

* Cleanup and create migration scripts

* Introduce test suite

* Fix test issues

* Correct CORS issue and update paths

* Update README
2025-06-16 21:50:44 +03:00