Commit Graph

2459 Commits

Author SHA1 Message Date
kolaente e393cfdfd7
fix(views): delete task buckets and task positions as well when deleting a view 2024-10-31 19:22:51 +01:00
kolaente 1fac81c8de
feat(cli): add cli command to delete orphan task positions 2024-10-31 19:19:56 +01:00
kolaente d03f9c7b73
fix(positions): directly look in the database to fetch tasks when recalculating their position 2024-10-31 19:02:15 +01:00
kolaente d7eff8e43b
feat(positions): add more debug logs 2024-10-31 18:46:09 +01:00
kolaente 7f5f5a4b8d
fix(events): do not crash filter event handler when triggered by a link share user
Resolves https://vikunja.sentry.io/issues/6030883119/events/4013802889b64b6b9d868e7c83ba4eb5/
2024-10-30 14:49:33 +01:00
kolaente d081cf80fc
chore(caldav): refactor fetching projects 2024-10-30 08:37:27 +01:00
kolaente b9366ca9e3
fix(filter): use correct syntax for not in query in typesense
Related to https://github.com/typesense/typesense/issues/2038
2024-10-29 17:23:16 +01:00
kolaente 57c6f2cd10
feat(filters): add "not in" operator for filters
Resolves https://community.vikunja.io/t/feature-requests-regarding-view-ordering-project-reference-in-kanban-and-a-notin-operator/2728
2024-10-29 12:03:16 +01:00
kolaente 412a8ef654
chore(projects): only pass users to checks 2024-10-29 09:11:06 +01:00
kolaente 816da6bc50
fix(projects): check with the current user if they have access to the project 2024-10-29 08:40:14 +01:00
kolaente dace07efda
fix(projects): return 0 if no parent project exists 2024-10-29 08:25:20 +01:00
kolaente fa032a889f
fix(filters): do not crash when a filter is invalid
Resolves https://vikunja.sentry.io/issues/6025547266/events/a62beaa09caf482ba238b18f363956df
2024-10-28 16:16:48 +01:00
kolaente e30374a28c
fix(projects): only add conditions to query when they are non-empty 2024-10-28 16:09:31 +01:00
kolaente b013b294e2
fix(projects): remove unnecessary join
The removal of the unnecessary join condition speeds up the query 10x. Before, it would take ~700ms on Vikunja Cloud. With this removal, the otherwise same query now takes ~70ms (which still leaves plenty of room for improvements, but it's already a great step forwards).
2024-10-28 15:58:07 +01:00
kolaente acdb45a92c
fix: lint 2024-10-28 14:04:54 +01:00
kolaente 29107e9865
fix: error message check on mysql 2024-10-28 13:50:12 +01:00
kolaente a70c472aa3
fix: create missing indexes on postgres 2024-10-28 13:25:38 +01:00
kolaente e1893ff573
chore: cleanup 2024-10-28 12:44:54 +01:00
kolaente 106a1c7864
fix(events): report async errors via Sentry 2024-10-28 12:44:26 +01:00
kolaente 7055d7341c
feat(sharing): add config so that users only find members of their teams
This adds a feature where you can enable users to only find members of teams they're part of. This makes the user search when sharing projects less confusing, because users only see other users they already know.
It is still possible to add users to teams with their email address, if they have that enabled in the user settings.
2024-10-28 11:08:06 +01:00
John Doe 28d5cd7b28 feat: allow setting schema for connection in postgres (#2777)
This PR introduce a new config for database, `database.schema`, allowing user to specify a specific schema to use for their postgres database connection. As the default value is set, it will be backward compatible.

Related discussion: https://community.vikunja.io/t/postgres-database-has-error-pq-relation-tasks-does-not-exist/1333

Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2777
Co-authored-by: John Doe <hugosum.dev@protonmail.com>
Co-committed-by: John Doe <hugosum.dev@protonmail.com>
2024-10-26 16:06:47 +00:00
kolaente b5cbe99b0a
fix(cmd): report error when the connection to the mail server failed
When running the testmail command, Vikunja would not stop if it wasn't able to connect to the mail server. This was a regression from 950de7c954.
This change fixes that problem.

Resolves https://kolaente.dev/vikunja/vikunja/issues/2767
2024-10-25 19:23:39 +02:00
Sterad d784e98f8c feat(cmd): Allow to specify custom filename for dump command (#2775)
This simplifies automated postprocessing of the backup file.

Co-authored-by: Maarten <mail@mgrothus.de>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2775
Co-authored-by: Sterad <hgasuser@gmail.com>
Co-committed-by: Sterad <hgasuser@gmail.com>
2024-10-25 12:37:17 +00:00
Sterad 1f76a8bb64 feat: preferably award admin access to project users with write access on user deletion (#2772)
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2772
Co-authored-by: Sterad <hgasuser@gmail.com>
Co-committed-by: Sterad <hgasuser@gmail.com>
2024-10-24 20:42:38 +00:00
kolaente 3ad5797307
fix: do not prefix tasks all the time
Fixes a regression from 29b9001078
2024-10-21 10:32:14 +02:00
kolaente 29b9001078
feat(filters): allow filtering by created and updated task fields
Resolves https://kolaente.dev/vikunja/vikunja/issues/2768
2024-10-18 15:15:19 +02:00
Frederick [Bot] 5eebfb3371 [skip ci] Updated swagger docs 2024-10-15 10:42:30 +00:00
kolaente d50572c544
fix(project): permission query on mysql 2024-10-15 12:16:22 +02:00
kolaente 302424b047
fix: lint 2024-10-15 11:57:49 +02:00
kolaente cda8155de4
fix(projects): correctly check inherited permissions 2024-10-15 11:56:51 +02:00
kolaente 92b90013ab
feat(projects): optionally return max right when querying all projects
This change introduces an expand query parameter which, when provided, allows to return all projects with the max right the current user has on that project. This allows to show and hide appropriate buttons in the frontend.

Resolves https://github.com/go-vikunja/vikunja/issues/334
2024-10-13 19:22:09 +02:00
kolaente 3e9c41cfc6
fix(api): allow api tokens to retrieve the user who created the token
Resolves https://kolaente.dev/vikunja/vikunja/issues/2644
2024-10-13 16:02:53 +02:00
kolaente a88124cfce
feat: make used bcrypt rounds configurable
This allows to configure the used bcrypt rounds and set it to 4 in tests, greatly speeding up the tests. It's not really required to set this to another value but it might be in the future as computers get faster.
2024-10-13 15:38:04 +02:00
kolaente 9219f7032e
fix: error reporting 2024-10-11 08:54:50 +02:00
kolaente 35a463c984
fix(filters): prevent position and bucket ID overriding position of existing tasks
This fixes a bug where the task position in a task was updated and immediately overridden by the update event handler.

Resolves https://community.vikunja.io/t/not-able-to-move-task-between-buckets-within-a-kanban-view-for-saved-filter/2882
2024-10-10 16:05:31 +02:00
kolaente 8ab387396d
fix: do not try to reindex tasks into typesense when it is not set up 2024-10-10 16:01:17 +02:00
kolaente d81f2db6ef
chore: replace all uses of bucket_id with the const 2024-10-02 10:43:51 +02:00
kolaente 425f6378c6
fix(kanban): make loading tasks for a bucket work
This fixes two closely-related bugs:
1. When loading tasks from a bucket of a saved filter, the saved filter query would override the user-supplied filter, which would cause to only tasks matching the saved filter query to be returned.
2. When a filter query for a bucket was specified, the function would only check if one of the top level filters was a filter for tasks in a specific bucket. That means a filter like "bucket_id = 42 && labels = foo" would return the expected result, while a filter like "labels = foo && (bucket_id = 42 && priority = 1)" would fail with an error 500 because the task_buckets table was not joined to the sql query. The fix from the first bug caused such filter queries.
2024-10-02 10:41:38 +02:00
kolaente 80d22d5060
fix(colors): truncate longer hex color values
Resolves https://vikunja.sentry.io/share/issue/6f1e37d4b8b248188e20650234a45cde/
2024-09-30 20:06:10 +02:00
kolaente 1eaeb8d003
fix(filters): change assertion based on the environment 2024-09-30 19:54:00 +02:00
kolaente 8d05b5cb01
fix(filters): return more details when the provided filter time zone is invalid 2024-09-30 08:42:16 +02:00
kolaente 754d56ca82
fix(filters): increase year value when using mysql and year < 1
Mysql cannot handle year values < 1. That means filtering for a date value like 0000-01-01 won't work with mysql. Additionally, dates like 0001-01-01 could under some circumstances not work either when the date in combination with the time zone would resolve to something like 0000-12-31 - for example when the server is located (and configured) in UTC, but the user running the query is in New York. This could be observed by setting the time zone manually using the filter_timezone query parameter.

Resolves https://vikunja.sentry.io/share/issue/42bce92c15354c109eb1e6488b6a542b/
Resolves https://vikunja.sentry.io/share/issue/ef81451b0c7b43f1bff2d3a86ba393bb/
2024-09-30 08:41:24 +02:00
kolaente d22bc79d3c
chore(tasks): add more details to error message
Trying to debug https://vikunja.sentry.io/share/issue/ef81451b0c7b43f1bff2d3a86ba393bb/
2024-09-29 21:44:28 +02:00
kolaente 1fe5e9cc55
chore(tasks): add more details to error message
Trying to debug https://vikunja.sentry.io/share/issue/ef81451b0c7b43f1bff2d3a86ba393bb/
2024-09-29 21:05:55 +02:00
kolaente 5478acfc09
fix(files): configure the files path in files init instead of globally
This fixes a regression introduced in daa7ad053c where the root path would be included twice in the file path, leading to retrieval issues.
2024-09-29 19:04:25 +02:00
kolaente 287d4f7de2
fix(filters): make sure year is always at least 1
Resolves https://vikunja.sentry.io/share/issue/ef81451b0c7b43f1bff2d3a86ba393bb/
Resolves https://github.com/go-vikunja/app/issues/94#issuecomment-2351818484
2024-09-29 18:56:46 +02:00
kolaente daa7ad053c
feat: auto tls
This commit introduces the automatic retrieval of TLS certificates from Let's Encrypt. If the feature is enabled, Vikunja will automagically request a certificate from Let's Encrypt and configure it to server content via TLS.
2024-09-29 18:20:30 +02:00
kolaente ca967782e8
fix(filters): explicitly search in json when using postgres
Resolves https://github.com/go-vikunja/vikunja/issues/330
Resolves https://community.vikunja.io/t/add-task-to-filter-view-cron-error-fetching-filters-pq-operator-does-not-exist-json-unknown/2831
2024-09-29 11:39:44 +02:00
jd 84dbc5fd84 fix: partial fix to allow list tasks in ios reminders app (#2717)
This PR introduces a partial fix for the CalDAV task listing bug (#753) when handling PROPFIND requests with `Depth: 1`, improving task visibility in the iOS Reminders app.

Notes:
* This might make Thunderbird somewhat usable when interacting with tasks using the `/dav/projects/{id} url`.
* This does not fully resolve the issue where the Reminders app will only display the last project after some time when adding the URL.

This is my first time working with Golang and CalDAV, so I’d really appreciate any feedback or suggestions on the code structure, style, or any improvements I could make.

Co-authored-by: JD <43763092+jdw1023@users.noreply.github.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2717
Reviewed-by: konrad <k@knt.li>
Co-authored-by: jd <jd@noreply.kolaente.dev>
Co-committed-by: jd <jd@noreply.kolaente.dev>
2024-09-28 09:06:32 +00:00
kolaente 261c6e6c9e
fix(files): only use service rootpath for files when the files path is not absolute
Resolves https://community.vikunja.io/t/images-failing-to-load-500-internal-server-error/2835
2024-09-23 14:41:00 +02:00
kolaente 207b88a286
fix(typesense): use typesense bulk insert, log all errors 2024-09-20 10:20:18 +02:00
kolaente 50a0674835
fix(typesense): force position to always be float instead of auto-inferring
This fixes an issue where it would be impossible to update a task in Typesense when the position for a view of it was previously saved as int64. This happened because the field is created per view on demand and its type is automatically inferred from the data saved. Now, when the first value for a particular position field is a float which could as well be an int (for example, 42.0), that field gets created as an int64 instead of float. Subsequent tries to save a float into that field will then fail.

Additionally, errors about this are silently discarded when using bulk insert. That's why the problem was not really debuggable at first.
2024-09-20 10:13:05 +02:00
kolaente 8181829c9e
fix(typesense): index tasks one by one 2024-09-20 09:18:57 +02:00
kolaente 83aeb90376
chore(logging): simplify log template string 2024-09-20 08:42:22 +02:00
kolaente e4584109df
chore(typesense): add more debug logging 2024-09-20 08:42:21 +02:00
kolaente 3f1d0f390b
fix(typesense): use emplace instead of upsert to update documents 2024-09-20 07:54:23 +02:00
kolaente edf206aba6
fix(typesense): make sure task positions are recreated properly when updating them
Related https://community.vikunja.io/t/version-0-24-0-internal-server-error-breaking-change/2558
Related https://github.com/go-vikunja/vikunja/issues/317
2024-09-19 15:57:18 +02:00
kolaente 9e39ef9397
fix(typesense): add new tasks to typesense properly
Maybe related to https://github.com/go-vikunja/vikunja/issues/317
2024-09-19 15:30:14 +02:00
kolaente c54181eeda
fix(deps): update module github.com/typesense/typesense-go to v2 2024-09-19 15:30:13 +02:00
kolaente b3bf92b7ce
fix(typesense): only fail silently when a project was not found during indexing 2024-09-19 15:30:13 +02:00
kolaente cd0ab54d57
fix(views): add migration for filtered kanban buckets 2024-09-19 13:23:23 +02:00
kolaente 4b2b8e3b83
chore: rearrange cron registers 2024-09-19 11:24:43 +02:00
kolaente bc52da4029
fix(filter): make sure tasks are in a correct bucket and position when they are part of a date filter
Whenever a task is part of a date filter, it might fall in or out of a filter bucket without anything changing, other than the current time. For example, a filter condition like due_date > now may include different tasks depending on the current time.
For these kinds of tasks to properly show up in the kanban view of a filter, there has to be an entry in the task_buckets table. These entries only got updated when either a task was updated or the filter itself was updated. To account for th changing of time, we also need to check periodically if tasks are now part or not anymore part of that filter.
This change adds a cron task to do precisely that.
We'll have to see if this works resource-wise, but the cron is not the only one doing a bunch of sql queries so it might be fine after all.

Resolves https://community.vikunja.io/t/tasks-in-saved-filter-appear-in-list-view-but-are-not-visible-in-kanban-view/2800
2024-09-19 11:19:48 +02:00
kolaente 2123da49a3
fix(task): cleanup old task positions and task buckets when adding an updated or created task to filter 2024-09-19 09:30:21 +02:00
kolaente c53a761396
fix(task): add task to filter view after it was updated
Maybe resolves https://community.vikunja.io/t/tasks-in-saved-filter-appear-in-list-view-but-are-not-visible-in-kanban-view/2800
2024-09-19 09:30:20 +02:00
kolaente c84b50b3ee
fix(labels): trigger task updated for bulk label task update 2024-09-19 08:59:34 +02:00
kolaente c252c8f0cd
fix: reset id before creating 2024-09-17 10:46:14 +02:00
kolaente 6f27e1401a
fix(user): do not create user with existing id
Resolves https://vikunja.sentry.io/share/issue/6f1e37d4b8b248188e20650234a45cde/
2024-09-14 12:16:05 +02:00
kolaente 1451f6e46f
fix(kanban): correctly paginate filtered kanban buckets
Resolves https://github.com/go-vikunja/vikunja/issues/314
2024-09-14 09:37:21 +02:00
kolaente 45ff5907e6
fix(view): correctly resolve bucket filter when paginating 2024-09-13 19:45:48 +02:00
kolaente 1a8f12ac13
fix(kanban): do not mark first bucked as done bucket in filter bucket mode
Resolves https://github.com/go-vikunja/vikunja/issues/313
2024-09-13 11:52:44 +02:00
Frederick [Bot] 9dd95101f9 [skip ci] Updated swagger docs 2024-09-12 08:42:38 +00:00
kolaente 20724f6fb5
fix(task): cyclomatic complexity 2024-09-12 10:24:16 +02:00
kolaente 8d730543c3
fix(project): reset id before creating
Resolves https://vikunja.sentry.io/share/issue/6f1e37d4b8b248188e20650234a45cde/
2024-09-11 23:46:13 +02:00
kolaente 55dd7d2981
fix(task): specify task index when creating multiple tasks at once
This change allows to specify the task index when creating a task, which will then be checked to avoid duplicates and used. This allows us to calculate the indexes for all tasks beforehand when creating them at once using quick add magic.
The method is not bulletproof, but already fixes a problem where multiple tasks would have the same index when created that way.

Resolves https://community.vikunja.io/t/add-multiple-tasks-at-once/333/16
2024-09-11 17:58:42 +02:00
kolaente 44a43b9f86
fix(auth): restrict max password length to 72 bytes
Bcrypt allows a maximum of 72 bytes. This is part of the algorithm and not something we could change in Vikunja. The solution here was to restrict the password during registration to a max length of 72 bytes. In the future, this should be changed to hash passwords with sha512 or similar before hashing them with bcrypt. Because they should also be salted in that case and the added complexity during the migration phase, this was not implemented yet.
The change in this commit only improves the error handling to return an input error instead of a server error when the user enters a password > 72 bytes.

Resolves https://vikunja.sentry.io/share/issue/e8e0b64612d84504942feee002ac498a/
2024-09-10 18:23:06 +02:00
kolaente 1085a6583b
fix(caldav): reject invalid project id with error 400
Resolves https://vikunja.sentry.io/share/issue/6fc18edefa0e4db3b2e10efe36deeaa4/
2024-09-10 17:32:35 +02:00
kolaente e698ac5a34
fix(label): ignore existing ID during creation 2024-09-10 16:45:40 +02:00
Frederick [Bot] 2539f15dfb [skip ci] Updated swagger docs 2024-09-07 11:48:49 +00:00
kolaente 5c1b2846a1
docs(api): use correct return type for the /user endpoint 2024-09-07 13:27:06 +02:00
Frederick [Bot] 2b8515b91d [skip ci] Updated swagger docs 2024-09-06 11:18:51 +00:00
kolaente 68636f27da
fix(files): use absolute path everywhere 2024-09-06 12:59:48 +02:00
kolaente cf94cc8cab
chore(docs): clarify usage of related model creation
Resolves https://github.com/go-vikunja/vikunja/issues/323
2024-09-06 12:06:12 +02:00
kolaente 02c1de55c4
chore(attachments): refactor building image preview 2024-09-06 09:43:59 +02:00
kolaente 9d7b6d3d9a
feat(dump): add flag to allow specifying dump path
Resolves https://community.vikunja.io/t/vikunja-0-24-docker-bin-sh/2621/3
2024-09-05 15:14:03 +02:00
kolaente c2b116de70
chore(files): use absolute file path to retrieve and save files 2024-09-05 15:03:32 +02:00
kolaente ffcc48ec87
fix(caldav): make sure colors are correctly saved and returned
Resolves https://community.vikunja.io/t/caldav-sync-tasks-org-strips-colour-and-end-date-values/2753/2
2024-09-04 23:08:29 +02:00
Frederick [Bot] 5aa0b6a0cf [skip ci] Updated swagger docs 2024-09-04 20:43:53 +00:00
kolaente b60efbd259
chore(subscription): return subscription entity type using json Marshaler 2024-09-04 22:25:03 +02:00
kolaente 34ac29fcce
fix(reminders): notify subscribed users as well
Resolves https://community.vikunja.io/t/no-reminder-notification-by-e-mail-from-my-colleague/2779
2024-09-04 22:11:07 +02:00
kolaente 75f3e930cd
fix(subscriptions): do not panic when a task does not have a subscription 2024-09-04 21:55:14 +02:00
kolaente 4ff8815fe1
fix(subscriptions): cleanup and simplify fetching subscribers for tasks and projects logic
Vikunja now uses one recursive CTE and a few optimizations to fetch all subscribers for a task or project. This makes the relevant code easier to maintain and more performant.
2024-09-04 19:55:17 +02:00
kolaente 115d1c3618
fix(subscription): always return task subscription when subscribed to task and project 2024-09-03 22:37:53 +02:00
kolaente 06305eb6b3
fix(subscriptions): correctly inherit subscriptions
Resolves https://community.vikunja.io/t/e-mail-notification-twice/2740/20
2024-09-03 22:04:11 +02:00
kolaente 2c9becec10
fix(notifications): only add project subscription as task subscription when the user is not already subscribed to the task
Before this fix, a project subscription object was added twice to the list of subscriptions for a task when the user did not subscribe to the task directly. This caused the user to receive a comment notification twice for a given task.
This was probably a regression from efde364224.

Resolves https://community.vikunja.io/t/e-mail-notification-twice/2740/18
2024-09-02 23:36:58 +02:00
kolaente 5c56d07215
chore(web): always set internal error 2024-09-01 19:37:27 +02:00
kolaente 6fb314b326
chore(web): use logger directly 2024-09-01 19:37:27 +02:00
kolaente 9b01666ec6
chore(web): use web auth factory directly 2024-09-01 19:37:27 +02:00
kolaente bcfd72c645
chore(web): use config directly 2024-08-29 18:41:20 +02:00
kolaente 499f66b7ae
chore(web): directly use new db session 2024-08-29 16:31:46 +02:00
kolaente 8e37d5cb76
chore(web): remove redundant use of fmt.Sprintf 2024-08-29 16:28:37 +02:00
kolaente 57ba073874
chore(web): use errors.As instead of type assertion 2024-08-29 16:28:16 +02:00
kolaente 329de3aab3
chore(web): remove unused echo context 2024-08-29 16:20:39 +02:00
kolaente 74a74b7ec7
fix(labels): test error assertion 2024-08-29 16:16:41 +02:00
kolaente 2063da9eec
chore(web): move web handler package to Vikunja 2024-08-29 16:15:28 +02:00
kolaente 7a7e97770c
chore(errors): always add internal error to echo error 2024-08-29 15:39:34 +02:00
kolaente bea131cfd9
fix(labels): trigger task.updated event when removing a label from a task 2024-08-29 15:19:06 +02:00
kolaente 5a0d1f1dc6
feat(event): simplify dispatching task updated event from only a task id 2024-08-29 15:18:03 +02:00
kolaente efde364224
fix(subscriptions): ignore task subscription when the user is subscribed to the project
Resolves https://community.vikunja.io/t/e-mail-notification-twice/2740/12
Resolves https://github.com/go-vikunja/vikunja/issues/316
2024-08-29 10:35:05 +02:00
kolaente fde1763eef
fix(api): return 404 response when using a token and the route does not exist 2024-08-29 10:12:20 +02:00
kolaente 429c7ca2c1
feat(task): always insert new tasks at the top
Resolves https://community.vikunja.io/t/kanban-cards-in-wrong-order/2731
2024-08-28 15:30:40 +02:00
kolaente bf56311faa
fix(task): set done at date when moving a task to the done bucket
Resolves https://github.com/go-vikunja/vikunja/issues/320
2024-08-28 14:21:31 +02:00
kolaente 8bfd0493b2 fix(deps): update golangci 2024-08-25 14:30:46 +00:00
kolaente ebfd5f54d2
fix(migration): ensure project background gets exported and imported 2024-08-12 17:18:07 +02:00
kolaente 28b4eaee31
fix(migration): make sure tasks are associated to the correct view and bucket for data imported from Vikunja dump
This change fixes a bug where imported projects would contain the default views additionally to the ones included in the export. This also caused the tasks to not show up in the views and buckets where they should show up, the newly imported ones.

Resolves https://community.vikunja.io/t/migration-from-vikunja-export-duplicated-boards-local-to-oidc/2690
2024-08-12 17:00:16 +02:00
kolaente b83448b7a6
fix(views): do not create task bucket and task position entries when duplicating a project
Resolves https://github.com/go-vikunja/vikunja/issues/297
Resolves https://community.vikunja.io/t/duplicating-a-board-puts-the-buckets-in-the-original-board/2579
2024-08-12 15:53:51 +02:00
kolaente eed783e42f
fix(task): move task into new kanban bucket when moving between projects
Resolves https://github.com/go-vikunja/vikunja/issues/290
Resolves https://community.vikunja.io/t/tasks-moved-from-one-project-to-another-do-not-show-up-in-kanban/2689
2024-08-12 15:35:37 +02:00
kolaente 40bb86bee5
fix(mail): do not fail testmail command when the connection could not be closed.
Resolves https://github.com/go-vikunja/vikunja/issues/300
2024-08-12 11:08:16 +02:00
Dominik Pschenitschni bc5fd380e5 chore: improve error message 2024-07-21 11:03:20 +00:00
Frederick [Bot] 0984821b41 [skip ci] Updated swagger docs 2024-07-19 10:01:46 +00:00
Elscrux 75ce261f74 feat: downscaled image previews for task attachments (#2541)
As discussed in [https://community.vikunja.io/t/add-scaled-down-images-for-image-previews](https://community.vikunja.io/t/add-scaled-down-images-for-image-previews) this adds a query parameter in the task attachment request which returns a scaled down image for preview purposes to reduce network load and improve responsiveness.

Co-authored-by: Elscrux <nickposer2102@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2541
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Elscrux <elscrux@gmail.com>
Co-committed-by: Elscrux <elscrux@gmail.com>
2024-07-19 09:30:06 +00:00
kolaente ef0bf3156e
fix(project): do not use project id of nil project in error 2024-07-18 16:39:30 +02:00
kolaente bea81f83f7
fix(filters): only insert task buckets and positions when there are any 2024-07-18 15:38:29 +02:00
kolaente 12474e5be6
fix(kanban): make sure tasks which changed their done status are moved around in buckets
This fixes a bug where tasks which had their done status changed were not moved in the correct bucket. This affected both frontend and api. The move of the task between buckets is now correctly done in the api and frontend - with a bit of duplicated logic between the two. This could be optimized further in the future.

Resolves https://kolaente.dev/vikunja/vikunja/issues/2610
2024-07-18 12:39:29 +02:00
kolaente f8fb9d7407
fix(filters): add tasks to filter buckets when updating the filter 2024-07-17 12:57:52 +02:00
kolaente 5cc420b289
fix(filters): add task to buckets of saved filters when creating the task 2024-07-17 12:57:51 +02:00
kolaente 744b40e7f7
fix: missing error handling 2024-07-17 11:43:38 +02:00
kolaente 1e42e54db1
fix(projects): do not create buckets in the original project when duplicating a project 2024-07-17 10:24:47 +02:00
kolaente 8a6689f4fa
fix(projects): do not create backlog bucket when duplicating views 2024-07-17 10:24:03 +02:00
kolaente 092a65b025
feat(project): add " - duplicate" suffix to duplicated projects title 2024-07-17 10:23:33 +02:00
kolaente 5e04abaa06
chore(project): rename receiver 2024-07-17 10:23:01 +02:00
kolaente ecdb03aca8
fix(migration): correctly set bucket for related tasks
When creating a related task during the import, migrating would fail because the migration would try to add the task to a bucket before the task was created. This fix changes the order in which that happens to prevent the error.
2024-07-17 10:05:59 +02:00
kolaente 58e492872a
fix(kanban): put task into correct bucket when creating via kanban board 2024-07-17 09:36:33 +02:00
kolaente 8439c9cc1e
fix(migration): failed migration typo 2024-07-15 12:10:29 +02:00
kolaente bb25a3397b
fix(kanban): use correct assertion in the test 2024-07-12 14:21:46 +02:00
kolaente 918c2224d8
fix(kanban): move task to done bucket in all views when moved to done bucket in one view 2024-07-12 13:59:59 +02:00
kolaente 323ecdaab6
fix(kanban): move repeating task back to old bucket when moved to the done bucket 2024-07-12 13:44:45 +02:00
kolaente 51040cf1af
fix(kanban): dispatch task updated event when task position is updated
This fixes a bug where a task would not be indexed in Typesense when its position changed.
2024-07-12 13:31:27 +02:00
kolaente e5e0db1f6a
fix(kanban): dispatch task updated event when task is moved between buckets
This fixes a bug where a task would not be indexed in Typesense when its bucket changed.
2024-07-12 13:29:15 +02:00
kolaente 62412ce29b
fix(kanban): do not move repeating task into a different bucket 2024-07-12 13:19:50 +02:00
kolaente 7c42fb5d75
fix: lint 2024-07-12 11:49:03 +02:00
kolaente 8711f7a935
fix(typesense): do not use modified opts for db fallback search 2024-07-11 12:52:09 +02:00
kolaente 7f27cee6a3
fix(tasks): do not use typesense modified options to search with database 2024-07-11 12:41:40 +02:00
kolaente 5644130f01
fix(filters): do not create a default filter for list view when creating a saved filter
Because a default filter in a filter is highly unexpected, it can lead to these filters cancelling each other out, resulting in confusing behaviour. See https://kolaente.dev/vikunja/vikunja/issues/2547#issuecomment-65180
2024-07-11 12:29:09 +02:00
kolaente 38c30d1eee
fix(filters): trim spaces when parsing filter values
This fixes a bug where values would not be trimmed before parsing them. That resulted in a value like " 2" being invalid, even though it's a perfectly fine number.
Because the frontend sends the filters for projects and other values with comma-separated spaces like "1, 2, 3", this essentially broke filtering by these values.

Resolves https://kolaente.dev/vikunja/vikunja/issues/2547
2024-07-11 12:20:32 +02:00
kolaente 471d0fcd4a
fix(typesense): reindex tasks when their position changed 2024-07-11 12:07:48 +02:00
kolaente 0b424fe95e
fix(typesense): do not crash after creating a project when tasks are not yet indexed
Before this fix, creating a project with Typesense enabled would fail with an error because the tasks it fetches as part of that process do not have the task position property in their index. We now fall back to using the db for searching in that case.

In the long run, we should use typesense joins for the task position to make this more efficient.
2024-07-11 12:07:22 +02:00
kolaente 70615d6843
fix(filter): make sure filter values are properly escaped before executing them
Resolves https://community.vikunja.io/t/filtering-unexpected-character-relative-dates/2544
Resolves https://github.com/go-vikunja/vikunja/issues/286
2024-07-11 11:27:19 +02:00
kolaente 2982acc0ec
fix(tasks): limit to max 250 entries when using typesense
Resolves https://community.vikunja.io/t/typesense-250-hits-limit/2536/8
2024-07-11 10:06:39 +02:00
kolaente 2c6bc7742f
fix(tasks): explicitly add task position to select statement when looking up tasks with Typesense
Resolves https://kolaente.dev/vikunja/vikunja/issues/2546
Resolves https://community.vikunja.io/t/version-0-24-0-internal-server-error-breaking-change/2558/5
2024-07-11 09:28:22 +02:00
Balázs Keresztury 136ef58820 fix: reorder mail options (#2533)
This PR fixes a bug where setting the SMTP port didn't have any effect, since it is overridden when `NewClient()` executes the `WithTLSPortPolicy()` option.

Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2533
Resolves https://kolaente.dev/vikunja/vikunja/issues/2534
Co-authored-by: Balázs Keresztury <b@belidzs.hu>
Co-committed-by: Balázs Keresztury <b@belidzs.hu>
2024-07-07 15:00:19 +00:00
kolaente 5e36bf797e
fix: add info log message when starting to run migrations 2024-07-05 10:26:26 +02:00
Frederick [Bot] 31d427546b [skip ci] Updated swagger docs 2024-07-02 14:52:12 +00:00
kolaente 359b07dabb
fix(views): move bucket update to extra endpoint
BREAKING CHANGE: The bucket id of the task model is now only used internally and will not trigger a change in buckets when updating the task.

This resolves a problem where the task update routine needs to know the view context it is in. Because that's not really what it should be used for, the extra endpoint takes all required parameters and handles the complexity of actually updating the bucket.
This fixes a bug where it was impossible to move a task around between buckets of a saved filter view. In that case, the view of the bucket and the project the task was in would be different, hence the update failed.
2024-07-02 16:34:53 +02:00
kolaente e6ce1251f7
fix(filters): allow managing views for saved filters 2024-07-02 12:36:08 +02:00
kolaente 2690c99438
fix(filters): explicitly use `tasks.id` as task id filter column
This fixes an error where filtering for labels or other related entities would fail with an error "ambiguous column name id"
2024-06-19 16:58:04 +02:00
kolaente d12deee977
feat(views): allow reordering views
Resolves https://community.vikunja.io/t/reordering-views/2394
2024-06-18 16:39:52 +02:00
kolaente f222ecfa19 chore(mail): update logger to new interface 2024-06-18 12:42:43 +00:00
kolaente 8b028dbc4b
feat(api): add bulk endpoints to api tokens
Previously, the bulk api endpoint were explicitly filtered out. This meant that you couldn't use them with api tokens.
This change adds them to their "parent" token types as another option, allowing users to select and use them when creating api tokens.

Resolves https://community.vikunja.io/t/help-with-bulk-api-complete/2461
2024-06-18 14:33:57 +02:00
kolaente 6626727d92
fix(tasks): tests 2024-06-18 13:48:09 +02:00
kolaente fa6546b6b2
feat(tasks): add tests for moving a task out of the done bucket 2024-06-18 13:40:41 +02:00
kolaente d3f397b036
fix(tasks): do not crash when order by id and position 2024-06-13 16:36:02 +02:00
kolaente acf4e3aa18
fix(tasks): ambiguous column name error when fetching favorite tasks 2024-06-06 21:50:30 +02:00
kolaente e7041f02d0
fix(caldav): do not crash for wrong parameters 2024-06-06 11:05:32 +02:00
kolaente dd58d37db3
feat(typesense): move partial reindex to a flag instead of a separate command 2024-06-05 10:49:37 +02:00
kolaente f131289d32
fix(typesense): correctly index assignee changes on tasks
This change fixes a bug where adding or removing an assignee to a task would not update the index in Typesense, causing filter queries for that assignee to return incorrect data. This was caused by the events being dispatched by the task update process not containing all the data.

Resolves https://github.com/go-vikunja/vikunja/issues/255
2024-06-05 10:36:25 +02:00
kolaente e56b2232bb
fix(typesense): do not try to sort by position when searching in a saved filter
This change fixes a bug where Typesense would try to sort by the project view of a saved filter. The view position is not indexed in Typesense, hence filtering fails. Because sorting by position is not a feature in saved filters, I've removed the logic for sorting saved filters with Typesense.
2024-06-05 10:24:28 +02:00
kolaente 506ce66434
fix(typesense): correctly join task position table when sorting by it
This change fixes a bug where the project view to use for joining was empty, since Typesense only supports 3 sorting parameters. When using more than that, the logic to fetch the view ID parameter would not return the correct parameter, but the logic building the order by statement would. That led to inconsistencies where the task position was included in the order by statement, but the table would not be joined, failing the query.
2024-06-05 09:54:55 +02:00
kolaente b386dfae87
fix(typesense): only return distinct tasks once 2024-06-04 18:22:05 +02:00
kolaente 5fc4ec48b7
fix(typesense): correctly incorporate existing filter when it is empty 2024-06-04 18:22:05 +02:00
Frederick [Bot] 37c89ea826 [skip ci] Updated swagger docs 2024-06-04 16:17:19 +00:00
kolaente 1843f1d0d8
fix(docs): correctly document filter query usage 2024-06-04 18:02:31 +02:00
Frederick [Bot] b4b17ed966 [skip ci] Updated swagger docs 2024-06-04 10:40:08 +00:00
kolaente 48676050d7 feat(tasks): expand subtasks (#2345)
This change adds a parameter to expand subtasks - if provided, Vikunja will ensure all subtasks are present in the results list.

Resolves https://community.vikunja.io/t/subtasks-show-on-different-pages/2292
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2345
Co-authored-by: kolaente <k@knt.li>
Co-committed-by: kolaente <k@knt.li>
2024-06-04 10:27:23 +00:00
kolaente a38e768895
fix(db migration): do not try to create a unique index
Related to https://kolaente.dev/vikunja/vikunja/issues/2243
2024-06-04 08:45:39 +02:00
kolaente c17e4564e7
fix(migration): ensure tasks are put into the correct bucket when migrating from todoist
Resolves https://github.com/go-vikunja/vikunja/issues/254
2024-06-04 08:33:11 +02:00
Frederick [Bot] 244ca262df [skip ci] Updated swagger docs 2024-06-03 19:51:44 +00:00
kolaente 99a67e09b1
feat(api): all usable routes behind authentication now have permissions
Previously, only routes which were coming from crudable entities could be used with an api token because there was no way to assign permissions to them. This change implements a more flexible structure for api permissions under the hood, allowing to add permissions for these routes and making them usable with an api token.

Resolves https://github.com/go-vikunja/vikunja/issues/266
2024-06-03 21:35:09 +02:00
kolaente 5ef140fba2
fix(tasklist): migrate old tasklist format
Resolves https://community.vikunja.io/t/task-list-from-0-21-0-0-23-0/2340
Resolves https://community.vikunja.io/t/general-feedback-after-trying-out-vikunja/1943/6
2024-06-03 17:39:35 +02:00
kolaente c47d8c6dbe
fix(task): do not try to set bucket for filtered bucket configuration 2024-06-03 17:02:50 +02:00
kolaente 4ce761eba7
fix(filter): trim search term before searching 2024-06-03 16:28:04 +02:00
kolaente 6c8299772a
fix(task): do not require admin permission to move tasks between buckets
Resolves https://community.vikunja.io/t/moving-between-buckets-requires-admin-permissions-now/2390
2024-06-03 16:26:07 +02:00
kolaente a6fccfb908
fix(webhook): log errors in webhook response 2024-06-03 13:11:44 +02:00
kolaente 7837bcfaae
fix(task): only count unique tasks in a bucket when checking bucket limit
This fixes a bug where the current number of tasks in a bucket was computed wrong when moving tasks into a bucket with a limit. Sometimes the bug would prevent adding a task to a bucket which seemed to have space left but ultimately failed when moving the task.
2024-05-06 20:07:06 +02:00
kolaente 66e96322ea
fix: do not remove empty openid teams when none are present
Maybe resolves https://community.vikunja.io/t/empty-openid-team-cleanup-cron-error-removing-empty-openid-team-database-is-locked-error-when-exporting-data/2306/3
2024-04-25 14:21:31 +02:00
kolaente 00a96663ba
fix(caldav): check if vtodo contains any components
Resolves https://vikunja.sentry.io/share/issue/1ae2fd1601aa40dea4aee41927cfcf78/
2024-04-25 13:40:23 +02:00
kolaente 741370b613
fix(caldav): return more than 1000 tasks
Resolves https://kolaente.dev/vikunja/vikunja/issues/2302
2024-04-25 13:37:04 +02:00
kolaente 409822442b
fix(backgrounds): return full project after uploading image 2024-04-22 18:33:43 +02:00
kolaente aec60f3591
feat(backgrounds): resize images to a maximum of 4K
Resolves https://kolaente.dev/vikunja/vikunja/issues/1373#issuecomment-43491
2024-04-22 18:29:58 +02:00
kolaente 1f6a1f8ad4
fix(kanban): fetch project and view when checking permissions 2024-04-21 19:44:47 +02:00
kolaente ea7527a3cf
fix(test): cast result before comparing 2024-04-21 19:43:57 +02:00
kolaente 574c7f218e
fix(labels): allow link shares to add existing labels to a task
Resolves https://github.com/go-vikunja/vikunja/issues/252
2024-04-21 15:12:27 +02:00
kolaente 1074a8d916
fix(views): only allow project admins to manage views
Resolves https://community.vikunja.io/t/manage-views-only-for-project-admins/2279
2024-04-21 14:36:09 +02:00
kolaente e88f95e501
fix(migration): remove buckets table name when dropping index
Related to https://kolaente.dev/vikunja/vikunja/issues/2243
2024-04-21 13:50:03 +02:00
kolaente 0962aa4262
fix(restore): transform json fields during restore
Resolves https://community.vikunja.io/t/unable-to-restore-after-dump-and-export-also-not-working/2263/5
2024-04-21 13:45:49 +02:00
kolaente ecbefdb921
fix(buckets): return correct task count for tasks in buckets 2024-04-14 17:21:53 +02:00
kolaente d8ca1a2de1
fix(favorites): make favorites work with configurable views 2024-04-14 17:12:16 +02:00
kolaente 5756da412b
fix(project): return full project after duplicating it 2024-04-13 22:39:40 +02:00
kolaente 4e05b8e97c
fix(project): do not crash when duplicating a project with no tasks 2024-04-13 22:36:41 +02:00
kolaente 1460d212ee
fix: do not push nil errors to sentry 2024-04-13 21:46:07 +02:00
kolaente e9de7d8a24
fix(project): delete all related entities when deleting a project 2024-04-13 21:43:44 +02:00
kolaente ce1d7778c7
fix(export): make export work with project views and new task positions 2024-04-13 21:07:06 +02:00
kolaente 9a16f6f817
fix: license in cmd help text 2024-04-13 20:13:24 +02:00
kolaente 77e95642a9
fix(tasks): make fetching tasks in buckets via typesense work 2024-04-13 17:52:47 +02:00
kolaente a5d02380a3
fix(typesense): make fetching task positions per view more efficient 2024-04-13 17:26:38 +02:00
kolaente 3519b8b2fe
fix(tasks): index and order by task position when using typesense 2024-04-13 17:19:27 +02:00
kolaente cb648e5ad8
fix(typesense): fix reindexing views and positions in typesense 2024-04-13 16:38:45 +02:00
kolaente 75f830457b
fix(comments): order comments by created timestamp instead of id
Partially resolves https://community.vikunja.io/t/trello-import-comments-and-assignments/2174/14
2024-04-13 14:45:12 +02:00
kolaente 6e2b540394
fix(migration): import task comments with original timestamps
Partially resolves https://community.vikunja.io/t/trello-import-comments-and-assignments/2174/14
2024-04-13 14:44:55 +02:00
kolaente bf3c8ac9da
fix(views): check if bucket index already exists before creating new index
Resolves https://kolaente.dev/vikunja/vikunja/issues/2243
2024-04-13 14:20:27 +02:00
kolaente 500b761fe6
fix(projects): do not return parent project id when authenticating as link share
Related to https://community.vikunja.io/t/vikunja-freezes/2246
Related to https://github.com/go-vikunja/vikunja/issues/233
2024-04-12 18:02:39 +02:00
Elscrux 61ee0bd5e2 feat(migration): include non upload attachments from Trello (#2261)
This makes the Trello migrator include attachments that are not file uploads. To include them in Vikunja without missing data, their text (usually links) will be appended to the Vikunja description.

Co-authored-by: Elscrux <nickposer2102@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2261
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Elscrux <elscrux@gmail.com>
Co-committed-by: Elscrux <elscrux@gmail.com>
2024-04-10 22:12:06 +00:00
kolaente bc19a2fb78
fix(migration): import card comments from Trello when migrating
Related: https://community.vikunja.io/t/trello-import-comments-and-assignments/2174/3
2024-04-09 13:56:17 +02:00
kolaente 994aaeb920
fix(migration): trello: only fetch attachments when the card actually has attachments 2024-04-09 13:25:03 +02:00
Elscrux 8458e77341 feat(migration): Trello organization based migration (#2211)
Migrate Trello organization after organization to limit total memory allocation.
Related discussion: https://community.vikunja.io/t/trello-import-issues/2110

Co-authored-by: Elscrux <nickposer2102@gmail.com>
Co-authored-by: konrad <k@knt.li>
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2211
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Elscrux <elscrux@gmail.com>
Co-committed-by: Elscrux <elscrux@gmail.com>
2024-04-09 10:54:38 +00:00
kolaente af3b0bbea1
fix: lint 2024-04-08 13:23:15 +02:00
kolaente e10cd368bf
feat(migration): notify the user when a migration failed
This change introduces notifications via mail when a migration fails. It will contain the error message and a hint to post it in the forum when Sentry is disabled, otherwise the error message will be sent directly to sentry and the notification will inform accordingly.
I've tried to balance "this thing failed, go figure it out" with "here is what we know and how you can get help", we'll see how well that approach works.
2024-04-08 12:15:24 +02:00
kolaente 0b9ef27d04
fix(migration): show correct message after starting a migration
Related to https://github.com/go-vikunja/vikunja/issues/238
2024-04-07 15:11:59 +02:00
kolaente 8bee5aa806
fix(project): return the full project when setting a background
Related to https://kolaente.dev/vikunja/vikunja/issues/2246
2024-04-07 14:53:57 +02:00
kolaente 5892622676
fix(notifications): rendering of plaintext mails 2024-04-07 14:12:44 +02:00
kolaente 191a476823
fix(notifications): only sanitze html content in notifications, do not convert it to markdown
Resolves https://community.vikunja.io/t/trello-import-html-mails/2197
2024-04-07 13:34:53 +02:00
kolaente ca33c0b2bc
fix: drop bucket index before recreating it
Resolves https://kolaente.dev/vikunja/vikunja/issues/2243
2024-04-07 12:50:42 +02:00
kolaente c1d06c5e5a
fix(projects): do not return parent project id of parents where the user does not have access
This caused the frontend to not show such projects, throwing errors in the process and sometimes made it hang.
2024-04-07 12:10:20 +02:00
kolaente 2f6b395334
feat(kanban): set task position to 0 (top) when it is moved into the done bucket automatically after marking it done 2024-04-06 14:35:05 +02:00
kolaente 1cd5dd2b2f
fix: lint 2024-04-06 14:12:08 +02:00
kolaente 521300613f
fix: update task in typesense when adding a label or assignee to them
Resolves https://community.vikunja.io/t/typesense-only-works-if-i-re-index/2212
2024-04-06 14:04:04 +02:00
kolaente 037022e857
fix: do not try to fetch nonexistant bucket 2024-04-06 13:55:11 +02:00
kolaente 7b8fab33a5
fix(kanban): Make sure all saved taskBucket positions are saved with their project view id
When the tasks were migrated from belonging directly to a bucket to only belonging to a view, I forgot to add the view in that migration, resulting in task buckets where the view was 0. These entries were not deleted when a task was moved between buckets, but the new task bucket relation nevertheless inserted. This resulted in tasks showing up multiple times on the kanban board.

This change adds a new migration which adds the correct project view id (as derived from the bucket) and fixes the old migration as well.

Resolves https://community.vikunja.io/t/no-longer-able-to-properly-move-tasks-between-kanban-columns/2175
2024-04-06 13:04:36 +02:00
kolaente 20e2314128
fix(filters): enclose values with a slash in them as strings so that date math values work
Previously, in a filter like "due_date = now/d", the / was parsed as the beginning of a comment, but as it did not contain the full value, this is an invalid comment, resulting in an error message.

Resolves https://community.vikunja.io/t/filter-setting-s/1791/12
2024-04-06 12:08:57 +02:00
waza-ari f0d695e789 fix(views): remove default filter from frontend, apply by default to new list views instead (#2240)
Fixes #2234

Co-authored-by: Daniel Herrmann <daniel.herrmann1@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2240
Reviewed-by: konrad <k@knt.li>
Co-authored-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
Co-committed-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
2024-04-02 13:49:38 +00:00
kolaente 8a6e3d5bd7
fix(views): use correct assertion in test 2024-04-02 12:42:07 +02:00
kolaente 81fe8391e4
fix(project): load full project after creating a project
When a new project was created, it contained all details already. This led to duplicated views and overridden attributes in the response.

Resolves https://kolaente.dev/vikunja/vikunja/issues/2242
2024-03-29 19:28:17 +01:00
kolaente 89e37b88d9
fix(views): update all fields when updating a view
Resolves https://kolaente.dev/vikunja/vikunja/issues/2241
2024-03-29 18:19:16 +01:00
kolaente 97b7592e7c
fix(views): do not map bucket id from xorm 2024-03-20 10:41:58 +01:00
Frederick [Bot] e53fcd3367 [skip ci] Updated swagger docs 2024-03-20 08:35:16 +00:00
kolaente d635fd2dd3
fix(projects): remove done bucket id field from projects struct 2024-03-20 09:21:40 +01:00
Frederick [Bot] 68d8ed5a7a [skip ci] Updated swagger docs 2024-03-19 19:28:04 +00:00
kolaente fee75e55a3
fix(views): stable assertion for bucket in tests 2024-03-19 17:27:03 +01:00
kolaente fa137b1ffc
fix(views): include order by fields in distinct clause when sorting by task position 2024-03-19 17:05:12 +01:00
kolaente e7d6ee2392
fix(views): update done status of recurring tasks 2024-03-19 17:04:39 +01:00
kolaente 62ff05695f
fix(views): kanban test assertions 2024-03-19 16:59:46 +01:00
kolaente 6f51b56589
fix: lint 2024-03-19 16:49:39 +01:00
kolaente 165d291cd5
fix(views): reset bucket when moving tasks between projects 2024-03-19 14:16:05 +01:00
kolaente e940db6d32
fix(views): return only tasks when the bucket id was already specified 2024-03-19 13:55:28 +01:00
kolaente 30b41bd143
fix(views): lint 2024-03-19 00:47:51 +01:00
kolaente f3cdd7d15f
fix(views): import 2024-03-19 00:47:51 +01:00
kolaente 8b90eb4a15
fix(views): integration tests 2024-03-19 00:47:51 +01:00
kolaente 803f58f402
fix(views): return correct error 2024-03-19 00:47:51 +01:00
kolaente b7b3169169
fix(views): count task buckets 2024-03-19 00:47:51 +01:00
kolaente 409f9a0cc6
fix(views): test assertions 2024-03-19 00:47:51 +01:00
kolaente 9075a45cb8
fix(views): update test fixtures for new structure 2024-03-19 00:47:51 +01:00
kolaente d4bdd2d4e8
fix(views): duplicate all views and related entities when duplicating a project 2024-03-19 00:47:51 +01:00
kolaente 9cc273d9bd
fix(views): move all tasks to the default bucket when deleting a bucket 2024-03-19 00:47:51 +01:00
kolaente 0f60a92873
fix(views): make kanban tests work again 2024-03-19 00:47:51 +01:00
kolaente 24fa3b206f
fix(views): create view 2024-03-19 00:47:50 +01:00
kolaente 433584813a
fix(views): view deletion 2024-03-19 00:47:50 +01:00
kolaente 3ec3bb76af
fix(views): make parsing work 2024-03-19 00:47:50 +01:00
kolaente 004f1e06bb
fix(views): do not return kanban tasks multiple times 2024-03-19 00:47:50 +01:00
kolaente 27cb6e3372
fix(views): make bucket edit work 2024-03-19 00:47:50 +01:00
kolaente 445f1c06fa
fix(views): make bucket creation work again 2024-03-19 00:47:50 +01:00
kolaente 7368a51f18
fix(views): make setting task position in saved filters work 2024-03-19 00:47:49 +01:00
kolaente e1774cc49a
feat(views): show tasks on kanban board in saved filter 2024-03-19 00:47:49 +01:00
kolaente 61e27ae3eb
feat(views): create task bucket relation when creating a new bucket 2024-03-19 00:47:49 +01:00
kolaente 7f1788eba9
fix(views): get tasks in saved filter 2024-03-19 00:47:49 +01:00
kolaente 5451ddf58d
fix(views): return tasks directly or in buckets, no matter if accessing via user or link share 2024-03-19 00:47:49 +01:00
kolaente f364f3bec8
feat(views): return position when retriving tasks 2024-03-19 00:47:48 +01:00
kolaente 786e67f692
feat(views): save task position 2024-03-19 00:47:48 +01:00
kolaente 398c9f1056
fix(views): return tasks in their buckets 2024-03-19 00:47:48 +01:00
kolaente cb111df2b7
fix(views): make fetching tasks in kanban buckets through view actually work 2024-03-19 00:47:48 +01:00
kolaente 73e5483e87
fix(views): do not break filters when combining them with view filters 2024-03-19 00:47:48 +01:00
kolaente 6913334b17
fix(views): correctly fetch project when fetching tasks 2024-03-19 00:47:48 +01:00
kolaente 7866543198
feat(views): generate swagger docs 2024-03-19 00:47:48 +01:00
kolaente ee6ea03506
feat(views): sort by position 2024-03-19 00:47:47 +01:00
kolaente 43f24661d7
feat(views): save view and position in Typesense 2024-03-19 00:47:47 +01:00
kolaente 5641da27f7
feat(views): save position in Typesense 2024-03-19 00:47:47 +01:00
kolaente 14353b24d7
feat(views): set default position 2024-03-19 00:47:47 +01:00
kolaente ca4e3e01c5
feat(views): recalculate all positions when updating 2024-03-19 00:47:47 +01:00
kolaente 8ce476491e
feat(views): only update the bucket when necessary 2024-03-19 00:47:47 +01:00
kolaente f2a0d69670
feat(views)!: make updating a bucket work again 2024-03-19 00:47:47 +01:00
kolaente a13276e28e
feat(views)!: decouple bucket <-> task relationship 2024-03-19 00:47:47 +01:00
kolaente 9cf84646a1
feat(views)!: move done and default bucket setting to view 2024-03-19 00:47:47 +01:00
kolaente 006f932dc4
feat(views)!: decouple bucket CRUD from projects 2024-03-19 00:47:47 +01:00
kolaente 0a3f45ab11
feat(views): decouple buckets from projects 2024-03-19 00:47:47 +01:00
kolaente d1d07f462c
feat(views): sort tasks by their position relative to the view they're in 2024-03-19 00:47:46 +01:00
kolaente 2502776460
feat(views)!: move task position handling to its own crud entity
BREAKING CHANGE: the position of tasks now can't be updated anymore via the task update endpoint. Instead, there is a new endpoint which takes the project view into account as well.
2024-03-19 00:47:46 +01:00
kolaente 238baf86f7
feat(views)!: return tasks in buckets by view
BREAKING CHANGE: tasks in their bucket are now only retrievable via their view. The /project/:id/buckets endpoint now only returns the buckets for that project, which is more in line with the other endpoints
2024-03-19 00:47:46 +01:00
kolaente 652bf4b4ed
feat(views): (un)marshal custom project view mode types 2024-03-19 00:47:46 +01:00
kolaente a9020e976d
feat(views): add bucket configuration mode 2024-03-19 00:47:46 +01:00
kolaente 38457aaca5
feat(views): use project id when fetching views 2024-03-19 00:47:46 +01:00
kolaente 98b7cc9254
feat(views): do not override filters in view 2024-03-19 00:47:46 +01:00
kolaente 4149ebed3a
feat(views): create default views when creating a filter 2024-03-19 00:47:46 +01:00
kolaente 2096fc5274
feat(views): return tasks in a view 2024-03-19 00:47:46 +01:00
kolaente e4b1a5d2db
feat(views): create default 4 default view for projects 2024-03-19 00:47:46 +01:00
kolaente 2fa3e2c2f5
feat(views): return views with their projects 2024-03-19 00:47:46 +01:00
kolaente ee228106fc
feat(views): add new default views for filters 2024-03-19 00:47:45 +01:00
kolaente b39c5580c2
feat(views): add crud handlers and routes for views 2024-03-19 00:47:45 +01:00
kolaente 6bdb33fb46
feat(views): add new model and migration 2024-03-19 00:47:45 +01:00
kolaente 8c826c44d2
fix(webhooks): fire webhooks set on parent projects as well 2024-03-13 19:41:34 +01:00
kolaente 5b2b7f7bdc
fix(kanban): reset done and default bucket when the bucket itself is deleted
Resolves https://github.com/go-vikunja/vikunja/issues/234
2024-03-12 22:23:35 +01:00
Frederick [Bot] 792bf88dcf [skip ci] Updated swagger docs 2024-03-12 19:47:16 +00:00
kolaente a5c51d4b1e feat: emoji reactions for tasks and comments (#2196)
This PR adds reactions for tasks and comments, similar to what you can do on Gitea, GitHub, Slack and plenty of other tools.

Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2196
Co-authored-by: kolaente <k@knt.li>
Co-committed-by: kolaente <k@knt.li>
2024-03-12 19:25:58 +00:00
Frederick [Bot] 3f380e0d61 [skip ci] Updated swagger docs 2024-03-11 16:41:16 +00:00
kolaente 0910d5d2f2
chore(auth): refactor removing empty openid teams to cron job 2024-03-11 17:20:05 +01:00
kolaente 09d5128050
fix(filters): don't escape valid escaped in queries 2024-03-11 17:02:04 +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 6fc3d1e98f
fix: lint 2024-03-11 15:42:09 +01:00
kolaente 3896c680d3
fix(filters): do not require string for in comparator 2024-03-11 14:36:59 +01:00
waza-ari 6c98052176 fix(teams): fix duplicate teams being shown when new public team visibility feature is enabled (#2187)
Due to the `INNER JOIN` on the `team_members` table and the new `OR` conditions allowing teams with the `isPublic` flag set to `true`, teams are returned multiple times. As we're only after the teams, a simple distinct query should fix the issue.

Co-authored-by: Daniel Herrmann <daniel.herrmann1@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2187
Co-authored-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
Co-committed-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
2024-03-10 21:42:34 +00:00
kolaente 0057ac5836
fix(migration): only download uploaded attachments 2024-03-10 18:41:37 +01:00
kolaente ca0de680ad
fix(migration): import card covers when migrating from Trello 2024-03-10 16:30:06 +01:00
waza-ari ffa82556e0 feat(teams): add public flags to teams to allow easier sharing with other teams (#2179)
Resolves #2173
Co-authored-by: Daniel Herrmann <daniel.herrmann1@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2179
Reviewed-by: konrad <k@knt.li>
Co-authored-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
Co-committed-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
2024-03-10 14:04:32 +00:00
renovate d7fdefcead chore(deps): update golangci/golangci-lint docker tag to v1.56.2 (#2099)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2099
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2024-03-10 13:47:19 +00:00
Frederick [Bot] 116b909d31 [skip ci] Updated swagger docs 2024-03-10 12:18:34 +00:00
konrad e95159a33c feat(filters): query-based filter logic (#2177)
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2177
2024-03-10 12:01:47 +00:00
Hangya c5e8ff66fb fix(migration): updated Trello color map to import all labels (#2178)
Trello has [added 20 color variants](https://www.atlassian.com/blog/trello/20-new-trello-label-colors) that were not imported, added them. Also added a fallback to save labels even if the color is not mapped yet.

Resolves https://community.vikunja.io/t/get-info-about-importation-trello/1968/16
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2178
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Hangya <ronkayj@gmail.com>
Co-committed-by: Hangya <ronkayj@gmail.com>
2024-03-10 11:23:38 +00:00
kolaente 654e95d99f
fix(filters): test fixture 2024-03-09 20:21:05 +01:00
kolaente 4e6e0608c7
fix(filters): lint 2024-03-09 20:08:17 +01:00
kolaente 32e1a2018a
chore: generate swagger docs 2024-03-09 19:07:31 +01:00
kolaente 05d3bb4fb6
fix(filters): swagger docs for kanban buckets 2024-03-09 19:07:31 +01:00
kolaente d0b762d761
docs(filter): add filter query explanation 2024-03-09 19:07:31 +01:00
kolaente 28fa2c517a
feat(filters): make new filter syntax work with Typesense 2024-03-09 19:06:48 +01:00
kolaente bc6d812eb0
fix(filters): lint 2024-03-09 19:06:35 +01:00
kolaente 87c027aafd
chore(filters): cleanup old variables 2024-03-09 19:06:35 +01:00
kolaente 65e1357705
fix(tests): make filter tests work again 2024-03-09 19:06:35 +01:00
kolaente eebfee73d3
fix(filter): correctly filter for buckets 2024-03-09 19:06:35 +01:00
kolaente ef1cc9720c
feat(filter): add in keyword 2024-03-09 19:06:35 +01:00
kolaente c6b682507a
feat(filter): add better error message when passing an invalid filter expression 2024-03-09 19:06:35 +01:00
kolaente 9d3fb6f81d
chore(filter): cleanup 2024-03-09 19:06:35 +01:00
kolaente 3ea81db836
feat(filter): migrate existing saved filters 2024-03-09 19:06:35 +01:00
kolaente 76ed2cff5f
feat(filter): nesting 2024-03-09 19:06:35 +01:00
kolaente e43349618b
feat(filter): more tests 2024-03-09 19:06:35 +01:00
kolaente 9624cc9e97
fix(filter): translate all tests 2024-03-09 19:06:35 +01:00
kolaente 764bc15d49
fix(filter): allow filtering for "project" 2024-03-09 19:06:34 +01:00
kolaente 3fc4aaa2a1
fix(filter): allow filtering on "in" condition 2024-03-09 19:06:34 +01:00
kolaente 9f73e2c5f9
fix(filter): don't crash on empty filter 2024-03-09 19:06:34 +01:00
kolaente c1e137d8ee
fix(filter): make sure single filter condition works 2024-03-09 19:06:34 +01:00
kolaente de320aac72
feat(filters): basic text filter works now 2024-03-09 19:06:34 +01:00
kolaente 307ffe11c4
feat(filters): very basic filter parsing 2024-03-09 19:06:31 +01:00
Christoph Ritzer 86983f50d4 fix(migration): Trello checklists (#2140)
Trello checklists are now properly converted to html checklists and put into the description.

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2140
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Christoph Ritzer <chris@cloumail.at>
Co-committed-by: Christoph Ritzer <chris@cloumail.at>
2024-03-09 09:01:02 +00:00
kolaente e65c3ffe6b
fix(migration): convert trello card descriptions from markdown to html 2024-03-09 09:31:57 +01:00
kolaente dc291a51f5
fix(migration): do not expire trello token 2024-03-06 15:13:54 +01:00
waza-ari d69fc28125 fix(openid): OIDC teams should not have admins (#2161)
This PR fixes an issue discussed in #2152. Before this PR, the user who triggered team creation automatically got the admin flag set for this group, which makes perfect sense for the normal UI workflow. OIDC managed teams cannot be edited in Vikunja, and they're created automatically by the first user logging in having this team assigned. This PR therefore makes sure that OIDC managed team members do not receive the admin flag.

Co-authored-by: Daniel Herrmann <daniel.herrmann1@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2161
Reviewed-by: konrad <k@knt.li>
Co-authored-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
Co-committed-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
2024-03-05 22:08:39 +00:00
waza-ari a3154e805c fix(auth): use (issuer, name) to check for uniqueness of oidc teams (#2152)
The change introduced in #2150 introduces a bug where a Team would be re-created every time a user logs in, as the check if a team already exists was based on both the unique `oidcID` and the `name`. This PR proposes to only base the check on the ID, as this should be unique.

Co-authored-by: Daniel Herrmann <daniel.herrmann1@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2152
Reviewed-by: konrad <k@knt.li>
Co-authored-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
Co-committed-by: waza-ari <daniel.herrmann@makerspace-darmstadt.de>
2024-03-04 20:26:45 +00:00
kolaente ac8751e1be
fix(task): move done tasks to the done bucket when they are moved between projects and the new project has a done bucket 2024-03-03 18:13:47 +01:00
kolaente f5b90517c4
fix(sentry): send unwrapped error to sentry instead of http error 2024-03-03 17:36:57 +01:00
kolaente fe27dd59ad
feat(subscription): use a recursive cte to fetch subscriptions of parent projects
Testing this locally resulted in improved response times from ~50ms to ~20ms when creating a project. It looks like even though the code running these sql queries uses different go routines, they affect each other (caused by IO or context switching?)
2024-03-03 15:34:18 +01:00
kolaente 22933dac4a
fix(project): typo in table name 2024-03-03 12:47:00 +01:00
kolaente fe02f4da2c
fix(project): check for project nesting cycles with a single recursive cte instead of a loop 2024-03-03 11:40:43 +01:00
Frederick [Bot] 4bb09b69be [skip ci] Updated swagger docs 2024-03-02 14:50:56 +00:00
kolaente 379b0b24b3
fix(auth): test assertion 2024-03-02 15:38:01 +01:00
kolaente a4a0ea973a
feat(auth): update team name in Vikunja when it was changed in the openid provider 2024-03-02 15:27:15 +01:00
kolaente fc4303a778
chore(auth): add oidc suffix to openid team name in db
Related to https://kolaente.dev/vikunja/vikunja/issues/2150
2024-03-02 15:23:19 +01:00
kolaente 4f1f96f1e9
chore(auth): refactor openid team creation 2024-03-02 15:22:37 +01:00
kolaente 10ff864e0c
fix(projects): load projects only one when fetching subscriptions for a bunch of projects at once
This change ensures already loaded projects are passed down when fetching their subscription  instead of re-loading each project with a single sql statement. When loading all projects, this meant all projects were loaded twice, which was highly inefficient. This roughly added 25ms to each request, assuming the per page limit was maxed out at 50 projects.

Empirical testing shows this change reduces load times by ~20ms. Because the request is already pretty fast, this is ~30% of the overall request time, making the loading of projects now even faster
2024-03-02 14:27:11 +01:00
kolaente a3932a0a19
fix(projects): return correct project pagination count 2024-03-02 13:30:34 +01:00
viehlieb ed4da96ab1 feat: assign users to teams via OIDC claims (#1393)
This change adds the ability to sync teams via a custom openid claim. Vikunja will automatically create and delete teams as necessary, it will also add and remove users when they log in. These teams are fully managed by Vikunja and cannot be updated by a user.

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/1393
Resolves https://kolaente.dev/vikunja/vikunja/issues/1279
Resolves https://github.com/go-vikunja/vikunja/issues/42
Resolves https://kolaente.dev/vikunja/vikunja/issues/950
Co-authored-by: viehlieb <pf@pragma-shift.net>
Co-committed-by: viehlieb <pf@pragma-shift.net>
2024-03-02 08:47:10 +00:00
kolaente 5b70609ba7
fix: usage of limit and order by usage in recursive cte 2024-02-28 14:35:09 +01:00
kolaente 6b1e67485b
feat: fetch all projects with a recursive cte instead of recursive query
This change modifies the fetching of all projects to use a recursive common table expression instead of recursively calling the method.
2024-02-28 13:42:45 +01:00
kolaente e40a0043d4
fix(migration): do not halt the whole migration when copying a background file failed 2024-02-19 19:21:06 +01:00
kolaente 2dab2ccedd
feat: allow using sqlite in memory database
This allows running vikunja for testing purposes. You almost never want to run this in production.
2024-02-15 10:48:48 +01:00
kolaente 415c6380a5
feat(api tokens): add task attachment to api scopes
This explicitly adds download and upload of task attachments. Because these are not handled with the usual CRUDables, they were not picked up automatically.

Resolves https://github.com/go-vikunja/vikunja/issues/112
2024-02-14 15:00:16 +01:00
kolaente 162741e940
fix: lint 2024-02-13 22:24:46 +01:00
kolaente 205f330f8a
fix(migration): make sure to correctly check if a migration was already running
This change fixes a bug where Vikunja would not correctly check if a migration was already running. That meant it was not possible for users who had never before migrated anything to start a migration, because Vikunja assumed they already had a migration running for them.
This state was neither properly reflected in the frontend, which is now fixed as well.
2024-02-13 22:21:59 +01:00
kolaente a12c169ce8
fix: do not send etag when serving the frontend index file
Without this change, the browser may serve an outdated index.html file which usually does not work, showing the user only a blank page.
2024-02-13 21:32:41 +01:00
kolaente 2facbae0d7
fix(dump): only allow imports from the same version they were dumped on
Previously, Vikunja would allow imports from any version which then caused problems since the table structure might have changed between releases. This change now checks if the current version is the same as the one the dump was created on.
2024-02-13 21:25:31 +01:00
kolaente 77a779acea
fix(dump): do not export files which do not exist in storage 2024-02-13 21:14:31 +01:00
kolaente 641fec1215
fix: never return frontend on routes starting with /api
This fixes a problem where Vikunja would sometimes return the html for the frontend when accessing an api route for a nonexistent ressource, because the static handler was the next best.

Resolves https://kolaente.dev/vikunja/vikunja/issues/2110
2024-02-13 10:05:15 +01:00
kolaente 1ab6fef70a
fix(metrics): typo 2024-02-12 14:23:16 +01:00
kolaente d4a389279c
chore: don't send http errors with a status < 500 to sentry 2024-02-11 15:29:27 +01:00
kolaente 8752ae2a0b
fix(webhook): fetch all event details before sending the webhook
Resolves https://community.vikunja.io/t/webhook-comment-data-issues/1952
2024-02-10 14:15:32 +01:00
kolaente 7edb53ca12
fix(export): don't crash when an exported file does not exist
Related to https://github.com/go-vikunja/vikunja/issues/110
2024-02-10 13:45:12 +01:00
kolaente 5ab9fb89bb
fix(tasks): check for cycles during creation of task relations and prevent them 2024-02-10 13:30:41 +01:00
kolaente d36b1608cf
fix: lint 2024-02-09 15:32:12 +01:00
kolaente ca68b52991
feat: replace api url with public url 2024-02-09 14:44:41 +01:00
kolaente 2d32d900c8
feat: replace api url with public url 2024-02-09 14:42:07 +01:00
kolaente 119c68be9d
feat: rename frontend url config to public url 2024-02-09 14:41:55 +01:00
kolaente 78df83ee69
feat: replace api url 2024-02-09 14:38:54 +01:00
kolaente db2ec45378
feat: move custom logo setting to api 2024-02-09 14:33:21 +01:00
kolaente d7dc209f15
feat: move allow icon changes setting to api 2024-02-09 14:30:21 +01:00
kolaente a0e770438d
feat: move sentry configuration from frontend to api 2024-02-09 14:24:29 +01:00
kolaente b3228794c7
feat: add caching rules for more files 2024-02-09 13:42:05 +01:00
kolaente 8b3cf2ed7e
chore: remove static path config option 2024-02-09 13:41:51 +01:00
kolaente 9c45d9ca15
feat: cache header and etag generation 2024-02-09 13:41:51 +01:00
kolaente 81455242ae
chore: copy static file handler 2024-02-09 13:41:50 +01:00
kolaente 6c5194b892
feat: bundle frontend files with api in one static bundle 2024-02-09 13:41:50 +01:00
kolaente fceb638e75
docs: remove mention of vikunja/api and vikunja/frontend repos 2024-02-08 14:31:02 +01:00
kolaente b95b92a23a
fix(filters): add explicit check for string slice filter
Resolves https://github.com/go-vikunja/api/issues/109
2024-02-05 22:08:17 +01:00
kolaente 8efdc96d02
chore(filters): log type if unknown filter type 2024-02-01 16:19:22 +01:00
kolaente 7f46914d5e
fix(project): pass user id to error message 2024-01-31 13:50:21 +01:00
Frederick [Bot] ba0cb022b1 [skip ci] Updated swagger docs 2024-01-28 14:43:54 +00:00
kolaente 96b4f2d1db
fix(projects): don't remove parent project id if the parent project is available in the same run
Resolves https://github.com/go-vikunja/frontend/issues/139
2024-01-28 15:28:08 +01:00
kolaente 30a2dcd04c
fix: lint 2024-01-28 15:27:14 +01:00
kolaente 0d24ba12bb
chore: rename function 2024-01-28 13:36:13 +01:00
kolaente d9875e476c
fix(assignees): make sure task assignee created event contains the full task 2024-01-28 13:23:27 +01:00
kolaente e4fec01d52
fix(assignees): subscribe assigned users directly to the task, not async
Resolves https://community.vikunja.io/t/richer-email-notifications/1891
2024-01-28 13:15:43 +01:00
kolaente b2970c6c04
fix(assignees): prevent double notifications for assignees 2024-01-28 13:11:50 +01:00
kolaente e03920b84a
fix(assignees): improve wording for assignee emails 2024-01-28 13:11:37 +01:00
kolaente ce53663a88
fix(openid): use the calculated redirect url when authenticating with openid providers 2024-01-28 12:41:35 +01:00
kolaente a20f6ac815
fix(task): delete the task after all related attributes to prevent task not found errors 2024-01-28 12:23:25 +01:00
kolaente 1630e4fc08
fix: tests 2024-01-28 11:52:16 +01:00
kolaente 90ad975ca0
fix(typesense): update tasks in Typesense directly when the change happened
Resolves https://community.vikunja.io/t/no-filters-working-assignee-date-task-done-etc/1910
2024-01-28 11:47:17 +01:00
kolaente ae9b382963
fix(webhooks): make sure all events with tasks have the full task
Resolves https://kolaente.dev/vikunja/api/issues/1676
2024-01-27 00:16:17 +01:00
kolaente d38050f2b8
fix(subscriptions): don't crash when a project is already deleted 2024-01-26 23:53:22 +01:00
kolaente 33a47b7f43
fix(relations): don't allow creating relations which already exist
Resolves https://github.com/go-vikunja/frontend/issues/144
2024-01-26 23:37:59 +01:00
kolaente ad8fa93cae
fix(user): make disable command actually work 2024-01-21 12:24:41 +01:00
kolaente 3ff4d81618
fix(migration): ignore tasks with empty titles 2024-01-19 23:04:24 +01:00
kolaente 4d48d814c9 fix: update function signatures 2024-01-16 14:06:44 +00:00
kolaente 27a5f6862b
fix: convert everything which looks like an url to a <a href html element
Related https://elk.zone/social.linux.pizza/@vikunja/111756305763288228
2024-01-14 22:59:31 +01:00
kolaente 2c84688a40
fix: lint 2024-01-14 22:23:33 +01:00
kolaente ec6e3e99e0
chore: check if import zip contains a VERSION file 2024-01-14 22:21:55 +01:00
kolaente 514ea71d93
fix(api): make sure permission to read all tasks work for reading all tasks per project
Resolves https://github.com/go-vikunja/api/issues/105
2024-01-14 22:17:22 +01:00
kolaente 09696aec1b
fix: create webhooks table for fresh installation
Resolves https://github.com/go-vikunja/api/issues/104
Resolves https://kolaente.dev/vikunja/api/issues/1655
2023-12-30 11:58:02 +01:00
kolaente a5a6aba7c8
fix(auth): don't reset user settings when updating name or email from external auth provider
Resolves https://github.com/go-vikunja/api/issues/102
2023-12-25 17:09:19 +01:00
kolaente 32611dc2d7
feat(reminders): persist reminders in the db 2023-12-23 15:40:03 +01:00
kolaente c05f51b923
chore(deps): update golangci-lint rules 2023-12-19 13:34:31 +01:00
kolaente 57bd5aca80
fix(webhooks): send application/json header 2023-12-06 14:09:49 +01:00
kolaente 74e40ccfb4
fix(files): keyvalue init in tests 2023-12-06 14:05:08 +01:00
kolaente 6ef1bc3944
fix: lint 2023-12-06 14:01:09 +01:00
kolaente cca42b9188
feat(metrics): add total number of attachments metric 2023-12-03 15:30:39 +01:00
kolaente fd0b2d103d
feat(metrics): add total number of files metric 2023-12-03 15:22:41 +01:00
kolaente 0ce110fa52
feat(metrics): add active link share logins 2023-12-03 15:12:43 +01:00
kolaente 8a3f16fcfb
fix(labels): make sure labels of shared sub projects are usable
Resolves https://community.vikunja.io/t/cannot-filter-on-projets-labels/1736
2023-12-03 14:33:43 +01:00
kolaente d35c30dd0c
fix(import): make sure importing works if parent / child projects are created in a different order
Resolves https://community.vikunja.io/t/migrating-from-self-hosted-instance/1805
2023-12-03 14:14:27 +01:00
kolaente 66b44da85b
fix(projects): delete child projects when deleting a project 2023-12-01 17:27:40 +01:00
kolaente c6c465c273
feat: make unauthenticated user routes rate limit configurable 2023-11-28 22:27:51 +01:00
kolaente bbc8da1e80
fix(tests): pass the map 2023-11-20 12:22:44 +01:00
kolaente df1f95871a
fix(projects): correctly set project's archived state if their parent was archived
Resolves https://kolaente.dev/vikunja/frontend/issues/3795
2023-11-17 20:00:08 +01:00
Frederick [Bot] 5da1075f88 [skip ci] Updated swagger docs 2023-11-16 12:20:35 +00:00
kolaente 1ed65d306d
fix(docs): remove duplicate paths (params) in swagger docs 2023-11-16 13:07:01 +01:00
kolaente b9a54b019d
fix(tests): remove duplicate projects from assertions 2023-11-15 13:17:04 +01:00
kolaente 61bce2b349
fix(projects): don't return child projects multiple times 2023-11-15 12:56:36 +01:00
kolaente ab2eda4bd5
fix(openid): make sure usernames with spaces work 2023-11-13 11:38:24 +01:00
Miguel Arroyo 225d65268d feat(caldav): Add support for subtasks (i.e. `RELATED-TO` property) in CalDAV (#1634)
As I mentioned [here](https://kolaente.dev/vikunja/api/pulls/1442#issuecomment-55215), this is mainly a cleanup of @zewaren 's original [PR](https://kolaente.dev/vikunja/api/pulls/1442).

It adds support for the `RELATED-TO` property in CalDAV's `VTODO` and the `RELTYPE=PARENT` and `RELTYPE=CHILD` relationships. In other words, it allows for `ParentTask->SubTask` relations to be handled supported through CalDAV.

In addition to the included tests, this has been tested by both @zewaren & myself with DAVx5 & Tasks (Android) and it's been working great.

Resolves https://kolaente.dev/vikunja/api/issues/1345

Co-authored-by: Miguel A. Arroyo <miguel@codeheads.dev>
Co-authored-by: Erwan Martin <public@fzwte.net>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1634
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Miguel Arroyo <mayanez@noreply.kolaente.de>
Co-committed-by: Miguel Arroyo <mayanez@noreply.kolaente.de>
2023-11-10 22:44:03 +00:00
kolaente 6169c2e12e
fix(typesense): correctly convert date values for typesense
Resolves https://kolaente.dev/vikunja/api/issues/1636
2023-11-09 12:29:52 +01:00
Frederick [Bot] 91146f139b [skip ci] Updated swagger docs 2023-11-08 23:29:34 +00:00
kolaente 46683a2516
feat(migration): migration from other services now happens in the background 2023-11-09 00:15:11 +01:00
kolaente 707bb6f89e
fix(migration): make sub project hierarchy work when importing from other services 2023-11-08 22:56:10 +01:00
kolaente b2866ca3da
feat(api): enable notifications for api token routes 2023-11-07 14:58:46 +01:00
kolaente 4d3ba495a7
fix(tests): use string IDs in Todoist test 2023-11-07 13:28:06 +01:00
kolaente 27984157c1
fix(migration): use string for todoist project note id 2023-11-03 12:06:23 +01:00
Frederick [Bot] 1c416ae73e [skip ci] Updated swagger docs 2023-10-24 14:38:04 +00:00
kolaente a375223872
fix: properly tag bucket-related operations 2023-10-24 16:13:15 +02:00
kolaente a1ea77f751
feat: accept hex values which start with a # 2023-10-24 16:12:22 +02:00
Frederick [Bot] 4625377752 [skip ci] Updated swagger docs 2023-10-22 17:21:16 +00:00
kolaente 8a4856ad87 feat: convert all markdown content to html (#1625)
Migration for https://kolaente.dev/vikunja/frontend/pulls/2222

Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1625
Co-authored-by: kolaente <k@knt.li>
Co-committed-by: kolaente <k@knt.li>
2023-10-22 13:48:22 +00:00
kolaente 10c9913e12
feat(notifications): add endpoint to mark all notifications as read 2023-10-20 16:40:47 +02:00
kolaente 66cf7ab50a
feat(reminders): include project in reminder notification 2023-10-20 13:56:14 +02:00
Frederick [Bot] b2b4b5423f [skip ci] Updated swagger docs 2023-10-20 11:39:17 +00:00
kolaente 55d345e236
feat(webhooks): validate events and target url 2023-10-20 12:42:28 +02:00
kolaente 61cd08fa13
fix(webhooks): add created by user object when creating a webhook 2023-10-18 22:18:45 +02:00
kolaente 72366a5b27
feat(webhooks): add created by user object when returning all webhooks 2023-10-18 20:06:07 +02:00
kolaente b4e3d8ee47
fix(webhooks): lint 2023-10-17 20:40:09 +02:00
kolaente 7a74e491da
fix(webhooks): lint 2023-10-17 20:35:14 +02:00
kolaente 2c84cec044
docs(webhooks): add swagger docs for all webhook endpoints 2023-10-17 20:35:14 +02:00
kolaente fc0029eed7
fix(webhooks): don't send the proxy auth header to the webhook target 2023-10-17 20:35:14 +02:00
kolaente 177f367a8c
feat(webhooks): expose whether webhooks are enabled 2023-10-17 20:35:14 +02:00
kolaente 1b82f26d3e
chore(webhooks): simplify registering webhook events 2023-10-17 20:35:13 +02:00
kolaente ec4aa606e2
chore(webhooks): reuse webhook client 2023-10-17 20:35:13 +02:00
kolaente 831aa4a014
feat(webhooks): add support for webhook proxy 2023-10-17 20:35:13 +02:00
kolaente b38360c9a5
feat(webhooks): add timeout config option 2023-10-17 20:35:13 +02:00
kolaente 34a92b759e
feat(webhooks): add setting to enable webhooks 2023-10-17 20:35:13 +02:00
kolaente 8cc775ac4c
fix(webhooks): routes should use the common schema used for other routes already 2023-10-17 20:35:13 +02:00
kolaente a0d8b28813
feat(webhooks): add hmac signing 2023-10-17 20:35:13 +02:00
kolaente a3a323cbf1
feat(webhooks): set user agent header to Vikunja 2023-10-17 20:35:13 +02:00
kolaente 4253d14367
chore(webhooks): remove WebhookEvent interface 2023-10-17 20:35:13 +02:00
kolaente 96ccf6b923
feat(webhooks): add route to get all available webhook events 2023-10-17 20:35:13 +02:00
kolaente eb1b9247ad
feat(webhooks): prevent link shares from managing webhooks 2023-10-17 20:35:13 +02:00
kolaente 57de44694c
feat(webhooks): add index on project id 2023-10-17 20:35:13 +02:00
kolaente 8d7a492936
feat(webhooks): add filter based on project id 2023-10-17 20:35:13 +02:00
kolaente 7d1c5c50c5
feat(webhooks): add basic sending of webhooks 2023-10-17 20:35:12 +02:00
kolaente 7f3c300240
feat(webhooks): add routes 2023-10-17 20:35:12 +02:00
kolaente c5de41f183
feat(webhooks): add event listener to send webhook payload 2023-10-17 20:35:12 +02:00
kolaente e5b8d8bd2d
feat(webhooks): register task and project events as webhook 2023-10-17 20:35:12 +02:00
kolaente ad7d485eb5
feat(webhooks): add basic crud actions for webhooks 2023-10-17 20:35:12 +02:00
kolaente 9a29b29a04
fix(user): allow openid users to request their deletion
Resolves https://community.vikunja.io/t/delete-user-not-possible-when-using-oidc/1689/4
2023-10-11 19:06:59 +02:00
kolaente 58497f29e6
fix(kanban): filter for tasks in buckets by assignee should not modify the filter directly
Resolves https://github.com/go-vikunja/api/issues/84
2023-10-11 18:43:28 +02:00
Frederick [Bot] 775b98b729 [skip ci] Updated swagger docs 2023-10-11 08:50:34 +00:00
KaibutsuX 0769d59054
feat(cli): added --confirm/-c argument when deleting users to bypass prompt (#86)
Reviewed-On: https://github.com/go-vikunja/api/pull/86
2023-10-10 21:24:25 +02:00
kolaente 56625b0b90
fix: lint 2023-10-10 20:35:43 +02:00
KaibutsuX 137f3bc151
chore: assume username instead of id when parsing fails for user commands (#87)
Reviewed-On: https://github.com/go-vikunja/api/pull/87
2023-10-10 18:06:10 +02:00
kolaente f5ac3abb2a
chore(test): add task deleted assertion to project deletion test 2023-10-03 15:52:38 +02:00
Peter H0ffmann ad04d302af chore: reverse the coupling of module log and config (#1606)
This way the config module can already use the log module with the same result (default logging to StdOut with Level INFO, same output as before) but ENV variables can already change the logging of config file related log output). It is now possible to dump as a cronjob without having to filter the default log about the used config file.

Also:
- all logging modules are now configurable when initializing which makes testing easier
- viper dependency removed from logging
- log correct settings when configured error level is invalid
- deprecation of value "false" for log.standard and log.events (already not mentioned in https://vikunja.io/docs/config-options/)

Co-authored-by: Berengar W. Lehr <Berengar.Lehr@uni-jena.de>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1606
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Peter H0ffmann <hoffmannp@noreply.kolaente.de>
Co-committed-by: Peter H0ffmann <hoffmannp@noreply.kolaente.de>
2023-10-03 09:28:28 +00:00
kolaente c217233e08
fix(typesense): getting all data from typesense 2023-09-29 21:26:12 +02:00
kolaente 98102e59f2
feat(typesense): add new tasks to typesense directly when they are created 2023-09-29 21:15:28 +02:00
kolaente 8f4ee3a089
fix(typesense): make sure searching works when no task has a comment at index time 2023-09-29 16:35:59 +02:00
Erwan Martin feacbbff74 fix(caldav): do not update dates of tasks when repositioning them (#1605)
When a task is updated, the position of the tasks of the whole project/bucket are updated. This leads to column "updated" of model Task to be updated quite often. However, that column is used for the ETag field of CALDAV.
Thus, changing a task marks all the other tasks as updated, which prevents clients from synchronizing their edited tasks.

Co-authored-by: Erwan Martin <erwan@pepper.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1605
Co-authored-by: Erwan Martin <public@fzwte.net>
Co-committed-by: Erwan Martin <public@fzwte.net>
2023-09-27 16:17:52 +00:00
kolaente f065dcf4ad
fix(typesense): add typesense sync to initial structs 2023-09-15 12:53:29 +02:00
kolaente addcbdd8ca
fix(test): don't check for error 2023-09-13 12:52:42 +02:00
kolaente 054f21821c
fix(typesense): don't try to index tasks if there are none 2023-09-13 12:19:09 +02:00
kolaente 38a3a5c6e8
fix(typesense): explicitely create typesense sync table 2023-09-13 12:05:37 +02:00
kolaente 1ee243f2bd
fix(project background): add more checks for whether a background file exists when duplicating or deleting a project
Related discussion: https://community.vikunja.io/t/500-internal-server-error-when-selecting-unsplash-background-image/778/18
2023-09-13 11:20:59 +02:00
kolaente c5c74e9537
chore(caldav): improve trimming .ics file ending 2023-09-07 15:52:37 +02:00
kolaente e34f503674
fix: lint 2023-09-07 11:31:35 +02:00
kolaente bfcefa0217
fix(caldav): check for related tasks synced back from a caldav client
Related discussion https://community.vikunja.io/t/tasks-org-subtask-syncing-issue/737/9
2023-09-07 11:29:44 +02:00
kolaente c6bdb5752a
fix(import): create related tasks without an id 2023-09-07 11:16:04 +02:00
kolaente 68d4dcd7e6
fix(projects): don't limit results to top-level projects when searching
Resolves https://github.com/go-vikunja/api/issues/82
2023-09-07 10:56:59 +02:00
kolaente b2f3a23cb3
fix(import): correctly set child project relations 2023-09-07 10:45:15 +02:00
kolaente 93795d2f29
fix(import): resolve task relations by old task ids 2023-09-07 10:24:15 +02:00
kolaente adf4b95ed3
fix(import): ignore duplicate project identifier 2023-09-07 10:12:15 +02:00
kolaente ce3a06f03b
fix(import): don't fail when importing from dev exports 2023-09-07 10:11:59 +02:00
kolaente 2c0c3ea24e
fix(build): don't require swagger to build 2023-09-06 21:08:09 +02:00
kolaente 107b0b791f
fix(swagger): add generated swagger docs to repo 2023-09-06 18:01:45 +02:00
kolaente 424bf7647b
fix: lint 2023-09-06 14:56:25 +02:00
kolaente 06bc92556e
fix(docs): add empty swagger file so that the package exists 2023-09-06 13:13:51 +02:00
kolaente b8e73f4fa5
fix: lint 2023-09-06 10:52:30 +02:00
kolaente bfb01898c2
fix(api tokens)!: make sure task create routes are available to use with the api
BREAKING CHANGE: The api route to create a new task is now /projects/:project/tasks instead of /projects/:project
2023-09-06 10:33:52 +02:00
kolaente d6db498853
fix: lint 2023-09-04 14:25:46 +02:00
kolaente 80b40bb2c0
feat(notify): don't notify disabled users 2023-09-04 14:23:56 +02:00
kolaente c28d1af877
fix(cmd): do not initialize asnyc operations when running certain cli commands 2023-09-04 11:22:50 +02:00
kolaente f38535b2f4
fix(typesense): upsert all documents at once 2023-09-04 11:19:55 +02:00
kolaente 093b5b99a0
fix(typesense): pass the correct user when fetching task comments 2023-09-04 10:42:10 +02:00
kolaente 490d374cfd
fix(typesense): add more error logging 2023-09-04 10:20:51 +02:00
kolaente 21a1f02ea3
fix(typesense): add more error logging 2023-09-03 22:54:50 +02:00
kolaente 1a492722dd
fix(typesense): upsert one document at a time 2023-09-03 22:51:43 +02:00
kolaente 8a15c91a4f
chore(tasks): better error messages when indexing tasks into Typesense 2023-09-03 22:22:27 +02:00
kolaente 0e32d478d1
fix(projects): save done and default bucket when updating project 2023-09-03 15:50:47 +02:00
kolaente 60bd5c8a79
feat: make default bucket configurable 2023-09-03 15:17:17 +02:00
kolaente bbbb45d224
feat: move done bucket setting to project 2023-09-03 15:01:35 +02:00
kolaente 97b5cd306f
feat: add demo mode flag
Related to https://kolaente.dev/vikunja/frontend/issues/2453
2023-09-01 17:47:43 +02:00
kolaente b3a847e581 fix(kanban): create missing kanban buckets (#1601)
Co-authored-by: edel <edel.altares@pm.me>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1601
Co-authored-by: kolaente <k@knt.li>
Co-committed-by: kolaente <k@knt.li>
2023-09-01 15:41:31 +00:00
edel 11810c9b3e
fix: validate usernames on registration 2023-09-01 17:40:31 +02:00
konrad 60cd1250a0 feat: api tokens
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1600
2023-09-01 14:34:39 +00:00
kolaente edbfc06a41
fix(kanban): don't prevent setting a different bucket as done bucket
Resolves https://kolaente.dev/vikunja/frontend/issues/3373
2023-09-01 16:18:59 +02:00
kolaente 769b4f8d66
fix(task): remove task relation in the other direction as well
Resolves https://community.vikunja.io/t/removing-parent-relationship-doesnt-remove-the-subtask-relationship/1492/3
2023-09-01 16:12:20 +02:00
kolaente eac4e455fd
fix(api tokens): lint 2023-09-01 15:56:35 +02:00
kolaente a4d946b4a9
fix(api tokens): test 2023-09-01 15:54:39 +02:00
kolaente 974e1878f8
chore(api tokens): add swagger docs about api token auth 2023-09-01 15:53:27 +02:00
kolaente 14c5a8ca5b
fix(api tokens): make sure read one routes show up in routes endpoint 2023-09-01 12:58:29 +02:00
kolaente e3c5a93f4f
chore(api tokens): remove updated date from tokens as it can't be updated anyway 2023-09-01 11:16:36 +02:00
kolaente 8f3d18a809
feat(api tokens): better error message for invalid tokens 2023-09-01 10:27:56 +02:00
kolaente e295d75e6e
feat(api tokens): move token validation middleware to new function 2023-09-01 10:19:55 +02:00
kolaente d9bfcdab8e
feat(api tokens): add tests 2023-09-01 10:19:31 +02:00
kolaente e3dac16398
feat(api tokens): check permissions when saving 2023-09-01 08:52:57 +02:00
kolaente e4c71123ef
fix: lint 2023-09-01 08:39:25 +02:00
kolaente 5c6c6cd9f0
feat(api tokens): check for scopes 2023-09-01 08:36:15 +02:00
kolaente 677bd5cfc9
feat(api tokens): check for expiry date 2023-09-01 08:36:15 +02:00
kolaente fb2a1c59db
feat(api tokens): check if a provided token matched a hashed on in the database 2023-09-01 08:36:15 +02:00
kolaente c88cbaa973
feat(api tokens): properly hash tokens 2023-09-01 08:36:11 +02:00
kolaente e6b25bd57b
feat(api tokens): add crud routes to manage api tokens 2023-09-01 08:35:54 +02:00
kolaente 3faf48706a
feat(api tokens): add api token struct and migration 2023-09-01 08:35:54 +02:00
kolaente 1ca93a678e
feat: endpoint to get all token routes 2023-09-01 08:35:54 +02:00
kolaente e518fb1191
chore: remove year from copyright headers
Resolves https://kolaente.dev/vikunja/api/pulls/1483
2023-09-01 08:32:28 +02:00
kolaente 5811d2a13b
fix: order by clause in task comments 2023-08-31 15:44:59 +02:00
kolaente 5392ca788c
fix(comments): make sure comment sort order is stable
Resolves https://community.vikunja.io/t/comment-order-is-not-by-time/1147/3?u=kolaente
2023-08-29 14:09:53 +02:00
kolaente 02184663e5
fix(filter): assignee search by partial username test 2023-08-29 11:40:53 +02:00
kolaente 29317b980e
fix: lint 2023-08-29 11:32:45 +02:00
kolaente 4f2796ac58
fix(filters): make "in" filter comparator work with Typesense 2023-08-29 11:14:36 +02:00
kolaente d0e3062bee
feat(tasks): allow filtering for reminders, assignees and labels with Typesense 2023-08-29 10:54:18 +02:00
kolaente 748651447a
feat(tasks): find tasks by their identifier when searching with Typesense 2023-08-29 09:31:36 +02:00
kolaente 2ca193e63b
feat(tasks): make sorting and filtering work with Typesense 2023-08-28 19:10:18 +02:00
kolaente 09cfe41e4f
feat(tasks): remove deleted tasks from Typesense 2023-08-28 13:34:47 +02:00
kolaente 1a82d6da44
feat(tasks): add periodic resync of updated tasks to Typesense 2023-08-28 13:26:40 +02:00
kolaente 010b4ce783
feat(tasks): add searching via typesense 2023-08-28 12:14:50 +02:00
kolaente dee46d527a
feat(tasks): add typesense indexing 2023-08-28 11:11:30 +02:00
kolaente 693a77ae51
fix(user): don't prevent deleting a user if their default project was shared
Resolves https://kolaente.dev/vikunja/api/issues/1595
2023-08-25 15:14:25 +02:00
kolaente 49d8713388
fix: typo 2023-08-24 11:16:07 +02:00
kolaente 1b9c4204a8
fix(reminders): make sure reminders are only sent once per user
Previously, when a user was creator and assigned to a task, they would get two reminder notifications for the same task. This was caused by Vikunja first fetching all creators and then all assignees and not removing duplicates from that list.

Related: https://community.vikunja.io/t/duplicate-email-reminders/1505/3
2023-08-24 10:47:17 +02:00
kolaente 5e8084c194
fix(project): duplicating a project should not create two backlog buckets
Resolves https://community.vikunja.io/t/when-duplicating-a-project-the-resulting-project-has-an-extra-bucket/1524
2023-08-23 16:19:42 +02:00
kolaente acb03c430e
fix(user): allow deleting a user if they have a default project
Resolves https://github.com/go-vikunja/api/issues/78
2023-08-23 16:10:51 +02:00
kolaente 40037f25f2
fix(user): don't crash when attempting to change a user's password
Resolves https://kolaente.dev/vikunja/api/issues/1587
Resolves https://github.com/go-vikunja/api/issues/79
2023-08-23 15:56:18 +02:00
kolaente 86f25f253b
fix(project): duplicate project into parent project 2023-07-07 12:56:15 +02:00
kolaente b5194624e0
fix: don't try to load subscriptions for nonexistent projects 2023-07-03 18:18:13 +02:00
kolaente 32689531ec
chore(docs): move login and register routes to auth category in api docs 2023-07-03 18:10:01 +02:00
kolaente 117c569721
fix(projects): return subprojects which were shared from another user 2023-07-03 11:45:29 +02:00
kolaente 895263f054
fix(filters): sorting tasks from filters
Resolves https://community.vikunja.io/t/filter-table-view-not-sorting/1416
2023-06-21 14:59:40 +02:00
renovate 1dc9c50d64 fix(deps): update module github.com/imdario/mergo to v1 (#1559)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1559
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-06-20 10:02:21 +00:00
kolaente 04e2c51fac
feat: allow saving frontend settings via api 2023-06-11 17:49:14 +02:00
cernst 4a4ba041e0 chore: remove reminderDates after frontend is migrated to reminders (#1448)
Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1448
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-06-10 17:21:36 +00:00
kolaente d83e3a0a03
chore: remove cache options
Cache was not working correctly, added more complexity and actually made response times slower. Because of this, I'm removing all cache options until we figure out a better solution.

Resolves https://kolaente.dev/vikunja/api/issues/1496
Resolves https://kolaente.dev/vikunja/api/issues/907
2023-06-08 17:05:36 +02:00
kolaente 72e0e22152
feat(kanban): return the total task count per bucket 2023-06-08 16:56:05 +02:00
kolaente ef94e0cf86
feat(projects): don't allow deleting or archiving the default project 2023-06-07 21:29:46 +02:00
kolaente ad0690369f
fix: lint 2023-06-07 21:00:12 +02:00
kolaente ebfb3f9aaa
fix(filter): don't try to get the real subscription for a saved filter project 2023-06-07 20:41:59 +02:00
kolaente 4ed2d305f0
fix(task): don't build partial task identifier 2023-06-07 20:33:18 +02:00
kolaente 7b7a914560
fix(test): use correct filter id 2023-06-07 20:30:28 +02:00
kolaente 43ef5f98d8
fix(projects): don't fail to fetch a task if there's a broken subscription record associated to it 2023-06-07 20:30:14 +02:00
kolaente e66344c21e
fix(task): don't try to return a project identifier if there is no project 2023-06-07 20:29:35 +02:00
kolaente 7755b9cd49
fix(projects): delete project in the correct order 2023-06-07 20:28:36 +02:00
kolaente 67825425a4
fix(filters): return all filters with all projects, not grouped under a pseudo project 2023-06-07 18:55:36 +02:00
kolaente 69bd023b62
fix(tasks): return a correct task identifier if the list does not have a good one set 2023-06-07 18:17:08 +02:00
kolaente 1a840c8b87
fix(tasks): make sure task deleted notification actually has information about the deleted task 2023-06-07 18:14:20 +02:00
kolaente e3842b6df7
fix(projects): reset pagination limit when fetching subprojects 2023-06-06 17:24:27 +02:00
kolaente e17b63b920
fix: lint 2023-06-05 19:14:26 +02:00
kolaente d758bdc5e2
fix(projects): don't try to share for nonexisting namespace 2023-06-05 18:12:12 +02:00
kolaente d68338b649
fix(docs): clarify error codes in swagger docs
Resolves https://kolaente.dev/vikunja/api/issues/1518
2023-05-30 21:37:40 +02:00
renovate 8c3ef34f75 fix(deps): update github.com/vectordotdev/go-datemath digest to 640a500 (#1532)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1532
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-05-30 18:11:31 +00:00
kolaente b56e45d743
fix: use rewrite when hosting frontend files via the api
Resolves https://kolaente.dev/vikunja/api/issues/1531
2023-05-30 18:56:37 +02:00
kolaente a51bbd1159
fix: don't get favorite task projects filter multiple times 2023-05-24 15:52:33 +02:00
kolaente 4b00f224d9
fix: reminder fixture 2023-05-24 15:52:33 +02:00
kolaente db3c7aa8b0
fix: make sure projects are correctly sorted 2023-05-24 15:52:33 +02:00
kolaente 353279cbff
fix: fetch all tasks for all projects 2023-05-24 15:52:33 +02:00
kolaente 3b0935d033
docs: remove all traces of namespaces 2023-05-24 15:52:33 +02:00
kolaente 9011894a29
feat: check for cycles when creating or updating a project's parent 2023-05-24 15:52:33 +02:00
kolaente edcb806421
feat: remove ChildProjects project property 2023-05-24 15:52:33 +02:00
kolaente f2d943f5c4
fix: add missing error code 2023-05-24 15:52:33 +02:00
kolaente 35964ce4a6
fix(projects): recalculate project's position after dragging when position would be 0 2023-05-24 15:52:33 +02:00
kolaente a8b76772ff
fix(migration): revert wrongly changed url 2023-05-24 15:52:33 +02:00
kolaente 53b2ade5bb
feat(projects): return a favorites pseudo project when the user has favorite tasks 2023-05-24 15:52:32 +02:00
kolaente b482664d82
fix(projects): don't allow making a project child of itself 2023-05-24 15:52:32 +02:00
kolaente aafcb0bac4
fix(projects): don't return child projects twice 2023-05-24 15:52:32 +02:00
kolaente 0110f93313
feat: make the new inbox project the default 2023-05-24 15:52:32 +02:00
kolaente f1cbe50605
fix: rename project receiver variable 2023-05-24 15:52:32 +02:00
kolaente 746ac1098f
fix(test): adjust fixture bucket and list ids 2023-05-24 15:52:32 +02:00
kolaente d7396fac57
fix(test): adjust fixture id 2023-05-24 15:52:32 +02:00
kolaente 3b00a5c200
fix(test): fixtures 2023-05-24 15:52:32 +02:00
kolaente a21bff3ffb
fix: compile errors 2023-05-24 15:52:32 +02:00
kolaente ebc3dd2b3e
fix: lint errors 2023-05-24 15:51:57 +02:00
kolaente 017f771783
chore(test): show table content when db assertion failed 2023-05-24 15:51:56 +02:00
kolaente abe5f72493
fix(migration): enable insert from structure work recursively 2023-05-24 15:51:56 +02:00
kolaente 4b55e2ce03
fix(migration): make file migration work with new structure 2023-05-24 15:51:56 +02:00
kolaente 2f81791735
chore(export): remove unused events 2023-05-24 15:51:56 +02:00
kolaente 8235c63f60
fix(tests): task collection fixtures 2023-05-24 15:51:56 +02:00
kolaente 03b7fa6dd3
fix(tests): subscription test fixtures 2023-05-24 15:51:56 +02:00
kolaente 5e6bff20f8
fix(tests): task permissions from parents 2023-05-24 15:51:56 +02:00
kolaente 8e56fe558a
fix(tests): adjust parent projects 2023-05-24 15:51:56 +02:00
kolaente 154ac61d7c
fix(projects): properly check if a user or link share is allowed to create a new project 2023-05-24 15:51:56 +02:00
kolaente 03eb4ecd07
fix(tests): permission tests for parent projects 2023-05-24 15:51:56 +02:00
kolaente d4e644e91e
chore(project): fmt 2023-05-24 15:51:56 +02:00
kolaente 48beb5f382
fix(project): don't allow un-archiving a project when its parent project is archived 2023-05-24 15:51:56 +02:00
kolaente 0cd633981a
fix(project): recursively get all users from all parent projects 2023-05-24 15:51:56 +02:00
kolaente 19f69419f7
fix(tasks): task relation test 2023-05-24 15:51:55 +02:00
kolaente 6bb42ced9d
fix(tasks): read all tests 2023-05-24 15:51:55 +02:00
kolaente 3b837a472b
fix(migration): remove wunderlist leftovers 2023-05-24 15:51:55 +02:00
kolaente 537ba60f2d
fix(tasks): get all tasks from parent projects 2023-05-24 15:51:55 +02:00
kolaente ceaa9c0e03
feat(subscriptions): make sure all subscriptions are inherited properly 2023-05-24 15:51:55 +02:00
kolaente afe756e4c1
fix(tests): make the tests compile again 2023-05-24 15:51:55 +02:00
kolaente f4fc431b6f
fix(projects): permission check now works 2023-05-24 15:51:55 +02:00
kolaente 438f5c8e12
fix(projects): don't check if new projects are archived 2023-05-24 15:51:55 +02:00
kolaente 3e8d1b3667
chore(projects) use a slice again 2023-05-24 15:51:55 +02:00
kolaente 18b9ff8512
feat(projects): check parent project when checking archived status 2023-05-24 15:51:55 +02:00
kolaente 5e2567645a
feat(projects): check all parent projects for permissions 2023-05-24 15:51:55 +02:00
kolaente d799915e78
feat(projects): get all projects recursively 2023-05-24 15:51:55 +02:00
kolaente 4c698dc7c7
fix: typo 2023-05-24 15:51:55 +02:00
kolaente e93a5ff11f
fix: rename after rebase 2023-05-24 15:51:54 +02:00
kolaente d79c393e5b
fix: make it compile again 2023-05-24 15:51:54 +02:00
kolaente 5d02d93d31
fix(tasks): don't check for namespaces in filters 2023-05-24 15:51:54 +02:00
kolaente 7c448c88a8
fix(project): don't check for namespaces in overdue reminders 2023-05-24 15:51:54 +02:00
kolaente 906574adc9
fix(project): remove comments, clarifications, notifications about namespaces 2023-05-24 15:51:54 +02:00
kolaente d794a2c5ca
fix(project): remove namespaces checks 2023-05-24 15:51:54 +02:00
kolaente 8cff813e9f
fix(project): remove namespaces from creating projects 2023-05-24 15:51:54 +02:00
kolaente 2dcd6451a4
fix(project): remove namespaces from getting projects 2023-05-24 15:51:54 +02:00
kolaente ac0d84a7d8
feat(migration): ignore namespace changes 2023-05-24 15:51:54 +02:00
kolaente 386e218b95
feat(migration): use new structure for migration 2023-05-24 15:51:54 +02:00
kolaente fef253312c
feat(projects): cleanup namespace leftovers 2023-05-24 15:51:54 +02:00
kolaente 16de7cd591
feat(projects): remove namespaces 2023-05-24 15:51:54 +02:00
kolaente 0795828a9f
feat(projects): add parent project, migrate namespaces 2023-05-24 15:51:54 +02:00
kolaente 47c2da7f18
feat: rename lists to projects 2023-05-24 15:51:53 +02:00
kolaente fc73c84bf2
feat: rename lists to projects 2023-05-24 15:51:53 +02:00
kolaente 87ed68e4c8
fix(migration): remove wunderlist leftovers 2023-05-24 15:51:53 +02:00
kolaente 50c922b7d1
fix: lint 2023-05-24 15:51:53 +02:00
kolaente 96a0f5e169
feat: rename lists to projects 2023-05-24 15:51:53 +02:00
kolaente 359d0512cc
fix: upgrade jwt v5 2023-05-23 16:37:16 +02:00
kolaente 7d9e8bd150
fix(cli): rename user project command 2023-05-10 22:37:37 +02:00
kolaente 7d8c42ab98
fix(migration): remove unused is_deleted flag from Todoist api response
Related discussion: https://community.vikunja.io/t/importing-tasks-from-todoist/322
2023-05-08 15:32:27 +02:00
kolaente 7ad256f6cd
fix: correctly pass unix socket to xorm 2023-04-17 19:39:38 +02:00
kolaente 0a6bbc2efd fix: using mysql via a socket 2023-04-17 10:48:59 +00:00
kolaente aa43127e52
fix: provide a proper error message when viewing a link share with an invalid token 2023-04-17 11:08:38 +02:00
kolaente 10f71c29b2
fix(saved filters): don't let query parameters override saved sorting parameters
Resolves https://kolaente.dev/vikunja/frontend/issues/3380
2023-04-14 11:01:31 +02:00
kolaente 2dad404217
fix: typo in email template 2023-04-14 10:29:54 +02:00
Dominik Pschenitschni eb3b4e9ed9 fix(CalDAV): naming 2023-04-11 11:21:40 +00:00
Dominik Pschenitschni 5856f21f31
chore: fix comment url 2023-04-11 11:40:06 +02:00
kolaente 9bf535d06f
fix: remove old saved openid provider settings from cache when starting Vikunja
Resolves https://kolaente.dev/vikunja/api/issues/1487
2023-04-10 13:32:20 +02:00
kolaente 47e42238ef
fix: make sure Vikunja is buildable without swagger docs present 2023-04-06 12:11:31 +02:00
Dominik Pschenitschni cca430810d fix(image): json type of struct property (#1469)
Co-authored-by: Dominik Pschenitschni <mail@celement.de>
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1469
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
Co-committed-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
2023-04-06 09:53:09 +00:00
Dominik Pschenitschni f76bb2b4a9 fix: align task ID param 2023-04-05 12:14:10 +00:00
Dominik Pschenitschni 7ada82ea92 fix: align namespaceID param 2023-04-05 12:14:10 +00:00
Dominik Pschenitschni cd90db3117 chore: fix spelling 2023-04-05 12:14:10 +00:00
Dominik Pschenitschni b6d5605ef6 fix: align "ID" param for Delete and Update method of Task model 2023-04-05 12:14:10 +00:00
Dominik Pschenitschni ac377a7a5d fix: align "otherTaskID" param for Delete method of TaskRelation model 2023-04-05 12:14:10 +00:00
kolaente c45ad112a2
fix(migration): don't try to fetch task details of tasks whose projects are deleted 2023-04-04 11:24:59 +02:00
kolaente 84933c08cc
feat(users): don't hide user email if it was the search request 2023-04-03 19:41:20 +02:00
kolaente dff4e01327
fix: ILIKE helper 2023-04-03 19:19:51 +02:00
kolaente a7231e197e
feat: allow to find users with access to a project more freely
Related to https://kolaente.dev/vikunja/frontend/issues/2196
2023-04-03 18:49:04 +02:00
WofWca eb93ccb827 chore(docs): add info about `/buckets` sorting 2023-04-03 05:20:42 +00:00
Dominik Pschenitschni 8edbca39cf fix: accept for migrations 2023-04-03 05:20:18 +00:00
Dominik Pschenitschni 441722372a feat: add token example 2023-04-03 05:20:01 +00:00
Dominik Pschenitschni 4f7d69a108 fix: docs auth openID method 2023-04-03 05:19:32 +00:00
Dominik Pschenitschni fc2cc4a155 fix: spelling 2023-04-03 05:19:08 +00:00
Dominik Pschenitschni cf7423fc1a fix(api): license (#1457)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1457
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
Co-committed-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
2023-04-02 19:34:06 +00:00
kolaente efa24cec44
feat: generate swagger docs at build time 2023-04-02 16:52:54 +02:00
cernst 1cffef6908 fix(caldav): Incoming tasks do not get correct time zone (#1455)
Dates from tasks.org may be formatted like DUE;TZID=Europe/Berlin:20230402T150000
After this fix the parameter TZID is no longer ignored and the Vikunja task gets a DueDate of 13:00 UTC, which corresponds to 15:00 in Europe/Berlin. Before this fix, the time was parsed to 15:00 UTC.

Resolves https://kolaente.dev/vikunja/api/issues/1453

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1455
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-04-02 12:31:31 +00:00
cernst f45648a6f7 feat(caldav): Sync Reminders / VALARM (#1415)
Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1415
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-04-01 11:09:11 +00:00
cernst 3f5252dc24 feat: Add relative Reminders (#1427)
Partially resolves #1416

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1427
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-03-27 20:07:06 +00:00
kolaente 823c817b1f
fix(import): don't try to load a nonexistant attachment file 2023-03-26 15:42:25 +02:00
kolaente f4e12dab27 fix: add missing license header 2023-03-25 12:28:56 +00:00
kolaente f0dcce702f fix: lint 2023-03-25 12:28:56 +00:00
kolaente 9590b82c11 feat: add logging options to mailer settings 2023-03-25 12:28:56 +00:00
cernst 5961e56d16 fix(caldav): Do not create label if it exists by title (#1444)
Resolves https://kolaente.dev/vikunja/api/issues/1435

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1444
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-03-24 18:34:48 +00:00
kolaente 4d5ad8f50e
chore(deps): update golangci-lint to 1.52.1 2023-03-24 19:17:45 +01:00
WofWca 6aadaaaffc chore: rename files (fix typo) 2023-03-21 19:02:05 +00:00
kolaente 8916de0366
fix: update redoc 2023-03-16 19:08:18 +01:00
kolaente 7a9611c2da
chore: cleanup 2023-03-13 14:28:36 +01:00
kolaente 7cab3a77a9
fix(migration): rename TickTick migration 2023-03-13 14:28:25 +01:00
kolaente 77ad90d53e
fix(migration): remove wunderlist leftovers 2023-03-13 14:28:20 +01:00
kolaente 55410ea73d
chore: generate swagger docs 2023-03-13 14:28:19 +01:00
kolaente e4f841cf6a
fix(tasks): sql for overdue reminders 2023-03-13 14:28:19 +01:00
kolaente 2940eae1aa
fix(migration): use correct struct 2023-03-13 14:28:19 +01:00
kolaente 0a3fdc0344
fix: users_lists name in migration 2023-03-13 14:28:19 +01:00
kolaente 06f1d2e912
fix: test fixtures 2023-03-13 14:28:07 +01:00
kolaente 61a3380a94
fix: trello import tests 2023-03-13 14:28:07 +01:00
kolaente fb818ea186
fix: test import 2023-03-13 14:28:06 +01:00
kolaente 7e53a21407
fix: rename incorrectly named ProjectUsers method 2023-03-13 14:28:06 +01:00
kolaente 8f4abd2fe8
feat: rename all list files 2023-03-13 14:28:06 +01:00
kolaente 2fba7bdf02
feat: migrate lists to projects in db identifiers 2023-03-13 14:28:06 +01:00
kolaente 349e6a5905
feat: rename lists to projects 2023-03-13 14:28:06 +01:00
kolaente c0c523f0a8
fix: don't send bad request errors to sentry 2023-03-13 10:52:52 +01:00
kolaente 672fb35bcb
fix: check if usernames contain spaces when creating a new user 2023-03-12 15:02:34 +01:00
kolaente 9f14466dfa
fix: lint 2023-03-05 22:24:29 +01:00
kolaente 077baba2ea
fix: lint 2023-03-05 14:34:34 +01:00
kolaente 066c26f83e
fix(caldav): make sure only labels where the user has permission to use them are used
Follow-up for a62b57ac62
2023-03-05 14:03:09 +01:00
cernst a62b57ac62 feat(caldav): import caldav categories as Labels (#1413)
Resolves #1274

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1413
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-03-02 15:25:26 +00:00
kolaente 534d04a1db
fix(task): correctly load tasks by id and uuid in caldav
Partially reverts 1afc72e190
2023-03-01 22:18:59 +01:00
cernst 1afc72e190 fix: Make sure labels are always exported as caldav (#1412)
Authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1412
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-02-28 10:42:57 +00:00
cernst 53197b85e3 feat(caldav): Export Labels to Caldav (#1409)
Partially resolves https://kolaente.dev/vikunja/api/issues/1274

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1409
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-02-27 11:22:42 +00:00
kolaente 168287923f
fix(migration): make sure trello checklists are properly imported 2023-02-24 12:13:18 +01:00
kolaente ca6d1946da
fix(tasks): make sure tasks are sorted by position before recalculating them 2023-02-23 17:43:23 +01:00
kolaente 1efa1696bf
fix(tasks): recalculate position of all tasks in a list or bucket when it would hit 0 2023-02-23 16:00:41 +01:00
kolaente da9d25cf72
feat: disable events log by default
BREAKING CHANGE: events log level is now off unless explicitly enabled
2023-02-15 10:44:02 +01:00
kolaente 20a5994b17
fix: lint 2023-02-14 20:37:16 +01:00
kolaente fceb5dae0f
fix(task): make sure the task's last updated timestamp is always updated when releated entities changed 2023-02-14 20:09:05 +01:00
kolaente 58da38adb6
fix(migration): don't try to add nonexistent tasks as related
Discussion: https://community.vikunja.io/t/todoist-migration-fails-after-51-iterations-19-minutes/1137
2023-02-07 17:06:04 +01:00
kolaente fdbe110945
chore(deps): upgrade golangci-lint to 1.51.0 2023-02-02 11:16:07 +01:00
clos afdceb0aff fix(list): when list background is removed, delete file from file system and DB (#1372)
Co-authored-by: testinho.testador <testinho.testador@noreply.kolaente.de>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1372
Reviewed-by: konrad <k@knt.li>
Co-authored-by: clos <clos@noreply.kolaente.de>
Co-committed-by: clos <clos@noreply.kolaente.de>
2023-02-01 11:38:23 +00:00
renovate ef8e97f95e fix(deps): update module github.com/go-redis/redis/v8 to v9 (#1377)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1377
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-01-31 16:45:58 +00:00
clos f660badc3d feat(background): add Last-Modified header (#1376)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1376
Co-authored-by: clos <clos@noreply.kolaente.de>
Co-committed-by: clos <clos@noreply.kolaente.de>
2023-01-29 22:07:46 +00:00
kolaente 491a142378
fix: lint 2023-01-29 22:42:24 +01:00
kolaente 40411e4100
chore(task): add test to check if a task's reminders are duplicated 2023-01-26 16:06:49 +01:00
kolaente 682123a9c9
fix(migration): todoist pagination now avoids too many loops 2023-01-24 22:27:57 +01:00
kolaente c59e006453
fix(migration): remove unused todoist parameters 2023-01-24 18:44:33 +01:00
kolaente 1971df7b84
fix(migration): use the proper authorization method for Todoist's api, fix issues with importing deleted items 2023-01-24 15:45:56 +01:00
kooshi 31a1452839 fix(migration): import TickTick data by column name instead of index (#1356)
Resolves: https://github.com/go-vikunja/api/issues/61
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1356
Co-authored-by: kooshi <kolaente.dev@pat.de.com>
Co-committed-by: kooshi <kolaente.dev@pat.de.com>
2023-01-24 13:58:18 +00:00
kolaente 530bb0a63c
fix(user): make reset the user's name to empty actually work 2023-01-23 18:30:01 +01:00
kolaente 7bf7a13bb9
fix(reminders): prevent duplicate reminders when updating task details 2023-01-23 18:14:15 +01:00
kolaente 82f4a5ad50
fix(export): ignore file size for export files 2023-01-11 18:56:30 +01:00
kolaente 04614614fe
fix(tasks): don't set a repeating task done when moving it do the done bucket 2023-01-11 18:46:24 +01:00
Rein 4b5e65d4c2
fix(mailer): forcessl config (#60)
Co-authored-by: Rein-R3 <rein@reinsan.top>
Reviewed-At: https://github.com/go-vikunja/api/pull/60
2023-01-09 12:39:43 +01:00
konrad ef1d1e2b20 feat(migrators): remove wunderlist (#1346)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1346
2022-12-29 17:12:39 +00:00
renovate c6429c8b13 fix(deps): update module github.com/labstack/echo/v4 to v4.10.0 (#1343)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1343
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2022-12-28 10:32:12 +00:00
kolaente 897a6e5d5c
fix(caldav): use const for repeat modes 2022-12-24 14:34:59 +01:00
kolaente 194b88e2eb
fix(tasks): don't reset the kanban bucket when updating a task and not providing one
Resolves https://github.com/go-vikunja/api/issues/56
2022-12-24 14:30:34 +01:00
kolaente c5327845ee
feat(caldav): add support for repeating tasks
Resolves https://github.com/go-vikunja/api/issues/57#issuecomment-1364373103
2022-12-24 12:19:51 +01:00
kolaente ea1d06bda6
fix(list): return lists for a namespace id even if that namespace is deleted
This fixes a problem where a namespace was deleted and its list were not.
Forum discussion: https://community.vikunja.io/t/list-deleted-but-tasks-showing-up-as-archived-and-overdue/1025
2022-12-23 17:48:21 +01:00
kolaente 6a97a214a3
fix(migration): use Todoist v9 api to migrate tasks from them
Discussion: https://community.vikunja.io/t/importing-tasks-from-todoist/322/7
2022-12-18 20:38:58 +01:00
viehlieb a79b1de2d0 feat: provide logout url for openid providers (#1340)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1340
Co-authored-by: viehlieb <pf@pragma-shift.net>
Co-committed-by: viehlieb <pf@pragma-shift.net>
2022-12-18 18:26:28 +00:00
renovate e9ce930230 fix(deps): update module github.com/swaggo/swag to v1.8.9 (#1327)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1327
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2022-12-18 16:43:30 +00:00
kolaente f93317bf5d
fix(caldav): add Z suffix to dates make it clear dates are in UTC 2022-12-04 21:01:04 +01:00
kolaente b8c3b570a4
fix(restore): check if we're really dealing with a string 2022-12-02 14:49:32 +01:00
kolaente 1f2eb57602
fix(reminders): make sure an overdue reminder is sent when there is only one overdue task 2022-12-01 18:41:24 +01:00
kolaente 51911a8868
fix(reminders): overdue tasks join condition 2022-12-01 18:30:05 +01:00
kolaente 47aae115df
fix(tasks): don't include undone overdue tasks from archived lists or namespaces in notification mails
Resolves https://kolaente.dev/vikunja/api/issues/1324
2022-12-01 18:07:30 +01:00
kolaente fbc4b91e0f
fix(dump): make sure null dates are properly set when restoring from a dump 2022-12-01 17:53:02 +01:00
kolaente 8c67be558f
fix: restore notifications table from dump when it already had the correct format 2022-12-01 17:33:00 +01:00
renovate f47faf577a fix(deps): update module github.com/wneessen/go-mail to v0.3.5 (#1325)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1325
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2022-11-21 11:56:19 +00:00
kolaente 96b5e93379
fix: swagger docs 2022-11-11 15:34:26 +01:00
kolaente 33e27c66a0
fix(filters): try parsing invalid dates like 2022-11-1 2022-11-11 11:05:21 +01:00
kolaente 986129a784
fix(filters): try parsing dates without time 2022-11-11 10:54:50 +01:00
kolaente 3d7605591e
fix(filters): try to parse date filter fields of the provided dates are not valid iso dates
Resolves https://community.vikunja.io/t/due-date-saved-filter-doesnt-seem-to-work/966/12
2022-11-10 16:39:44 +01:00
kolaente 811514855b
fix(metrics): make currently active users actually work 2022-11-09 21:12:17 +01:00
kolaente a9e6776abf
fix(tasks): allow sorting by task index 2022-11-09 14:43:31 +01:00
kolaente f9b48ec091
fix(filter): only check for 0 values in filter fields with numeric values 2022-11-08 17:03:07 +01:00
kolaente 3b0b4a8460
fix(task): duplicate reminders when adding different ones between winter / summer time
Resolves F-889
2022-11-08 16:50:19 +01:00
kolaente 2ef5e54588
fix(filter): also check for 0 values if the filter should include nulls
Resolves https://community.vikunja.io/t/due-date-saved-filter-doesnt-seem-to-work/966
2022-11-08 16:27:16 +01:00
konrad 641a9da93d fix: usage with postgres over unix socket (#1308)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1308
2022-11-04 12:25:06 +00:00
kolaente 622f2f0562
fix: look for the default bucket based on the position instead of the index 2022-11-03 15:10:20 +01:00
kolaente c495096444
fix: make sure task indexes are calculated correctly when moving tasks between lists
Resolves https://github.com/go-vikunja/api/issues/52
2022-11-02 17:40:52 +01:00
kolaente 9fc08a0790
fix(lists): return correct max right for lists where the user has created the namespace 2022-10-25 18:54:11 +02:00
kolaente f5a33478f2
fix(migration): make sure importing works when the csv file has errors and don't try to parse empty values as dates 2022-10-09 22:58:08 +02:00
kolaente 0d044997df
fix(migration): expose ticktick migrator to /info 2022-10-09 22:45:01 +02:00
kolaente 5e40f4ec89
fix(migration): properly parse duration 2022-10-09 22:44:57 +02:00
kolaente 5871d32c2d
feat(migration): generate swagger docs 2022-10-09 22:44:54 +02:00
kolaente 3af9855148
feat(migration): add routes for TickTick migrator 2022-10-09 22:44:49 +02:00
kolaente e5394d6d4b
feat(migration): add TickTick migrator 2022-10-09 22:44:32 +02:00
kolaente b8769c746c
feat: allow a user to remove themselves from a team 2022-10-09 16:39:40 +02:00
kolaente 2fc690a783
fix: make sure list subscriptions are set correctly when their namespace has a subscription already 2022-10-07 14:18:36 +02:00
kolaente 008908eb49
fix: make sure a user can only be assigned once to a task
See https://community.vikunja.io/t/task-can-be-assigned-twice-or-more-to-the-same-user/883
2022-10-06 18:22:19 +02:00
kolaente 631a265d2d
feat: add proper checks and errors to see if an attachment belongs to the task it's being used as cover image in 2022-10-05 15:12:29 +02:00
kolaente e113fe34d0
chore: generate swagger docs 2022-10-05 15:12:29 +02:00
kolaente 0eb47096db
fix: make cover image id actually updatable 2022-10-05 15:12:29 +02:00
kolaente 0e1904d50b
fix: make cover image id actually updatable 2022-10-05 15:12:29 +02:00
kolaente b4b25499f2
feat(task): add cover image attachment id property 2022-10-05 15:12:29 +02:00
kolaente 5a40100ac5
feat: provide default user settings for new users via config 2022-10-02 11:00:58 +02:00
kolaente aed560339b
fix(todoist): properly import all done tasks 2022-10-01 19:29:05 +02:00
kolaente c076f73a87
fix: make sure user searches are always case-insensitive
See https://kolaente.dev/vikunja/frontend/issues/2196#issuecomment-33698
Resolves https://github.com/go-vikunja/frontend/issues/29
2022-10-01 17:39:08 +02:00
konrad 53419180be feat: upgrade xorm (#1197)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1197
2022-10-01 15:10:00 +00:00
renovate c5bd09702a chore(deps): update dependency golang to v1.19 (#1228)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1228
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2022-10-01 15:05:12 +00:00
kolaente fcb205a842
fix: use connection string for postgres 2022-10-01 16:57:06 +02:00
kolaente b1fd13bbcb
feat: upgrade xorm 2022-10-01 16:25:29 +02:00
kolaente 878d19beb8
fix: make sure pseudo namespaces and lists always have the current user as owner 2022-10-01 15:19:46 +02:00
kolaente 96ed1e33e3
fix: don't allow setting a list namespace to 0
See https://github.com/go-vikunja/app/issues/13
2022-10-01 15:02:17 +02:00
kolaente 45defebcf4
fix: tasks with the same assignee as doer should not appear twice in overdue task mails 2022-09-30 18:35:40 +02:00
Luca Bernstein 3adfeb3b34 fix(namespaces): add list subscriptions (#1254)
Add list subscriptions to namespaces call to enable frontend to show subscription state correctly.

Resolves https://github.com/go-vikunja/frontend/issues/75

Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1254
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Luca Bernstein <luca@lucabernstein.com>
Co-committed-by: Luca Bernstein <luca@lucabernstein.com>
2022-09-29 09:49:24 +00:00
Luca Bernstein 54b7f7127c fix(caldav): no failed login emails for tokens (#1252)
Prevent Vikunja from sending mail notifications for failed login attempts if CalDav token is used.

Before, as the provided password value was tested against the user password regardless of whether it was a CalDav token, it triggered a failed login attempt email every three times.

Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1252
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Luca Bernstein <luca@lucabernstein.com>
Co-committed-by: Luca Bernstein <luca@lucabernstein.com>
2022-09-27 15:12:37 +00:00
Luca Bernstein 25609db567 fix(mail): pass mail server timeout (#1253)
Fix error log for mailserver closing logic, as default timeout of 15 seconds of mail client package used triggers before our logic leading to error on close.

Resolves https://github.com/go-vikunja/api/issues/48

Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1253
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Luca Bernstein <luca@lucabernstein.com>
Co-committed-by: Luca Bernstein <luca@lucabernstein.com>
2022-09-26 16:09:39 +00:00
Arie 090c67138a
fix: preserve dates for repeating tasks (#47)
Reviewed-At: https://github.com/go-vikunja/api/pull/47
2022-09-16 17:20:08 +02:00
kolaente aaeffe925e
fix(caldav): make sure duration and due date follow rfc5545
Related discussion: https://community.vikunja.io/t/error-with-davx-synchronization/810
2022-09-07 15:39:40 +02:00
kolaente c19479757a
fix: properly log extra message 2022-09-01 14:19:00 +02:00
kolaente beb4d07cf9
fix: don't override saved filters 2022-08-17 17:03:01 +02:00
kolaente 10ded56f66
fix: don't fail a migration if there is no filter saved 2022-08-17 12:27:03 +02:00
kolaente 0c8bed4054 fix: lint 2022-08-16 21:27:32 +00:00
kolaente 9ddd7f4889 fix: only list all users when allowed 2022-08-16 21:27:32 +00:00
kolaente 3047ccfd4a feat: add migration to change user ids to usernames in saved filters 2022-08-16 21:27:32 +00:00
kolaente 7f28865903 feat: search by assignee username instead of id 2022-08-16 21:27:32 +00:00
kolaente 8bf0f8bb57
fix: make sure generating blur hashes for bmp, tiff and webp images works 2022-08-15 23:37:05 +02:00
kolaente 3ccc6365a6
fix: prevent moving a list into a pseudo namespace 2022-08-15 23:25:39 +02:00
kolaente d47edac376
feat(mail): don't try to authenticate when no username and password was provided 2022-08-03 13:41:42 +02:00
kolaente 77fafd5dc3
fix: lint 2022-08-02 15:07:08 +02:00
kolaente 3688bbde20
fix: don't return email addresses from user search results 2022-08-02 15:02:15 +02:00
kolaente c51ee94ad1
fix: return all users on a list when no search param was provided 2022-08-02 15:02:00 +02:00
kolaente 8f27e7e619
fix: properly decode params in url
Resolves https://kolaente.dev/vikunja/api/issues/1224
2022-08-02 14:50:03 +02:00
kolaente 382a7884be
fix: make sure to use user discoverability settings when searching list users
Resolves https://kolaente.dev/vikunja/frontend/issues/2196
2022-08-02 13:26:42 +02:00
kolaente 1feb62cc45
fix: lint 2022-07-31 15:50:38 +02:00
kolaente dd461746a6
fix: add validation for negative repeat after values
Partial fix for https://kolaente.dev/vikunja/frontend/issues/2179
2022-07-21 15:00:28 +02:00
kolaente 0f555b7ec7
fix: reset id sequence when importing a dump from postgres 2022-07-21 14:54:52 +02:00
kolaente 79b31673e2
fix: return 9:00 as default time for reminders if none was set
Resolves https://kolaente.dev/vikunja/api/issues/1211
2022-07-19 16:38:48 +02:00
kolaente 6e15d46a93
fix(restore): use the correct initial migration
Related to https://kolaente.dev/vikunja/api/issues/1199
2022-07-13 23:44:21 +02:00
kolaente 54348c5891
fix(restore): make sure to reset sequences after importing a dump when using postgres
Related to https://kolaente.dev/vikunja/api/issues/1199
2022-07-13 23:43:53 +02:00
kolaente 596d2bf676
fix(restore): properly decode notifications json data
Related to https://kolaente.dev/vikunja/api/issues/1199
2022-07-13 23:43:20 +02:00
kolaente ac92499b7d
fix(caldav): make sure description is parsed correctly when multiline
Resolves https://github.com/go-vikunja/api/issues/35
2022-07-13 22:47:25 +02:00
kolaente b1892eaf63
fix(mail): set server name in tls config so that sending mail works with skipTlsVerify set to false 2022-07-13 19:57:44 +02:00
kolaente c906fc2b07
fix(mail): don't try to authenticate against the mail server when no credentials are provided
Related to https://github.com/go-vikunja/api/issues/34
2022-07-12 15:46:28 +02:00
kolaente 4bb77b5539
fix(mail): don't set a username by default 2022-07-12 11:49:23 +02:00
kolaente 5743a4afe5
fix: properly set tls config for mailer 2022-07-11 16:10:28 +02:00
kolaente 62325de9cd
feat: use actual uuids for tasks 2022-07-11 14:54:33 +02:00
kolaente 5cc4927b9e
fix: add missing error check 2022-07-07 23:23:15 +02:00
kolaente 2b074c60a7
fix(caldav): properly parse durations when returning VTODOs
Resolves https://github.com/go-vikunja/frontend/issues/55
2022-07-07 23:20:37 +02:00
kolaente f5a4c136fb
fix: cycles in tasks array when memory caching was enabled
Resolves #1119
2022-07-07 18:34:49 +02:00
kolaente 230478aae9
fix: remove credential escaping for postgres connections to allow for passwords with special characters
Resolves https://github.com/go-vikunja/api/issues/22
2022-07-07 18:04:16 +02:00
kolaente 73c4c399e5
feat: use embed fs directly to embed the logo in mails 2022-07-07 15:54:38 +02:00
kolaente 25ffa1bc2e
fix: prevent logging openid provider errors twice 2022-07-07 15:47:37 +02:00
kolaente 4429ba2da1
fix(caldav): make sure the caldav tokens of non-local accounts are properly checked 2022-07-04 18:08:46 +02:00
kolaente d0e09d69d0 fix: tests 2022-06-30 14:21:17 +00:00
kolaente f30a9d1038 chore(docs): add new mailer option to docs 2022-06-30 14:21:17 +00:00
kolaente c62e26b6fe fix: revert renaming Attachments to Embeds everywhere 2022-06-30 14:21:17 +00:00
kolaente f4f8450d16 feat: embed the vikunja logo as inline attachment 2022-06-30 14:21:17 +00:00
kolaente 30e0e98f77 feat: migrate away from gomail 2022-06-30 14:21:17 +00:00
kolaente 01271c4c01
feat: allow only the authors of task comments to edit them 2022-06-16 17:38:27 +02:00
kolaente d837f8a624
fix: add missing migration 2022-06-16 16:56:35 +02:00
kolaente 8869adfc27
feat: add setting to change overdue tasks reminder email time 2022-06-16 16:20:26 +02:00
kolaente 7eb3b96a44
feat: send overdue tasks email notification at 9:00 in the user's time zone 2022-06-12 21:24:28 +02:00
kolaente 2f25b48869
feat: restrict max avatar size
resolves #1171
2022-06-12 18:29:12 +02:00
konrad e52c45d5aa fix: sort tasks logically and consistent across dbms (#1177)
This PR changes the behavoir of sorting tasks. Before, tasks were sorted with null values first. Now, null values are always sorted last which is usually what you want.

Partial fix for https://github.com/go-vikunja/frontend/issues/54

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1177
2022-05-30 20:53:58 +00:00
grahammiln acaa85083f feat: ability to serve static files (#1174)
Added the configuration key, `service.staticpath`, to serve files from the configuration path on root (/).

Serving static files allows the api service to also serve the frontend content. This is a simple option for deploying Vikunja without needing any other servers or proxies.

Running a complete instance becomes:

    VIKUNJA_SERVICE_STATICPATH=/path/to/frontend ./vikunja

Where `/path/to/frontend` is a copy of Vikunja's frontend static files.

## Implementation

Providing a path, via the configuration or environment, adds a static file middleware to serve the path's contents from root (/).

By default, the configuration path is empty and Vikunja's existing behaviour is unchanged.

Co-authored-by: Graham Miln <graham.miln@dssw.co.uk>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1174
Reviewed-by: konrad <k@knt.li>
Co-authored-by: grahammiln <grahammiln@noreply.kolaente.de>
Co-committed-by: grahammiln <grahammiln@noreply.kolaente.de>
2022-05-23 20:49:28 +00:00
kolaente f5ebada913
fix: set derived default values only after reading config from file or env 2022-05-23 22:12:15 +02:00
renovate 3ab0ac9f27 fix(deps): update module github.com/swaggo/swag to v1.8.2 (#1167)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1167
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2022-05-15 19:57:00 +00:00
kolaente 9845fcc170
fix: add more methods to figure out the current binary location 2022-05-08 21:54:26 +02:00
tuxthepenguin 4960a498ff Add client-cert parameters of the Go pq driver to the Vikunja config (#1161)
Co-authored-by: tuxthepenguin <tux@saturnv.uphus-internal.de>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1161
Reviewed-by: konrad <k@knt.li>
Co-authored-by: tuxthepenguin <tuxthepenguin@noreply.kolaente.de>
Co-committed-by: tuxthepenguin <tuxthepenguin@noreply.kolaente.de>
2022-04-23 15:46:00 +00:00
konrad e4b50e84a4 feat: add caldav tokens (#1065)
# Description

This PR adds API routes to create and manage caldav tokens. These tokens can be used instead of a user password - required for users who are using external auth providers and don't have a password.

Fixes #842

Frontend: https://kolaente.dev/vikunja/frontend/pulls/1186

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1065
2022-03-30 18:25:56 +00:00
kolaente de97fcbd12 fix: lint 2022-03-30 16:36:07 +00:00
kolaente d3bdafb717 fix: decoding images for blurHash generation 2022-03-30 16:36:07 +00:00
kolaente 6b51fae093 fix: return BlurHash in unsplash search results 2022-03-30 16:36:07 +00:00
kolaente ba2bdff391 chore: generate swagger docs 2022-03-30 16:36:07 +00:00
kolaente 7fa0865188 fix: lint 2022-03-30 16:36:07 +00:00
kolaente 6df865876d feat: return BlurHash for unsplash search results 2022-03-30 16:36:07 +00:00
kolaente 2ec7d7a8a8 feat: save BlurHash from unsplash when selecting a photo from unsplash 2022-03-30 16:36:07 +00:00
kolaente f83b09af59 feat: generate a BlurHash when uploading a new image 2022-03-30 16:36:07 +00:00
kolaente 362706b38d feat: add migration to create BlurHash strings for all list backgrounds 2022-03-30 16:36:07 +00:00
konrad 0a1d8c9404 feat: add date math for filters (#1086)
This adds support for relative dates in filters, similar to the ones from [grafana](https://grafana.com/docs/grafana/latest/dashboards/time-range-controls) or [elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.3/common-options.html#date-math).

In short, it allows you to filter for due dates by passing in dates like "now - 7d" to get a date from 7 days ago.

This is a very powerful addition for saved filters as they will allow you to create filters for all kinds of stuff where you previously only could use fixed dates. Now you can for example create a saved filter for "all tasks this week".

Frontend PR: https://kolaente.dev/vikunja/frontend/pulls/1342

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1086
2022-03-27 20:35:04 +00:00
kolaente ac6818a476
fix: checking for error types 2022-03-27 17:52:33 +02:00
kolaente 5cf263a86f
feat: upgrade golangci-lint to 1.45.2 2022-03-27 16:55:37 +02:00
kolaente b60c69c5a8
chore: cleanup namespace creation 2022-03-06 17:09:05 +01:00
kolaente 75f74b429e
fix: validate email address when creating a user via cli 2022-03-04 19:58:40 +01:00
kolaente 8bf2254f4b
fix: restoring dumps with no config file saved in them 2022-02-19 17:46:10 +01:00
kolaente 22e3f242a3
fix: disabling logging completely now works 2022-02-19 17:42:32 +01:00
kolaente 8cb92b3924
fix(dump): don't try to save a config file if none was provided and dump vikunja env variables 2022-02-19 11:32:30 +01:00
kolaente 44aaf0a4ec
fix: clarify which config file is used on startup 2022-02-19 11:32:30 +01:00
kolaente 43f1daf40c
fix: microsoft todo migration not importing all tasks
Previously, we did not check if a list has more tasks than the ones returned. By default, the Microsoft Graph API only returns 10 tasks. If the user had more they would not get imported.
Now we check if there are more pages with tasks and pull them all in until we have everything.
2022-02-18 20:00:42 +01:00
konrad 1322cb16d7 feat: add long-lived api tokens (#1085)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1085
Co-authored-by: konrad <k@knt.li>
Co-committed-by: konrad <k@knt.li>
2022-02-06 13:18:08 +00:00
shilch f7a06e4644 Enable a list to be moved across namespaces (#1096)
Co-authored-by: Simon Hilchenbach <simon@hilchenba.ch>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1096
Reviewed-by: konrad <k@knt.li>
Co-authored-by: shilch <simon@hilchenba.ch>
Co-committed-by: shilch <simon@hilchenba.ch>
2022-01-23 12:59:43 +00:00
konrad 61d49c3a56 feat: add time zone setting for reminders (#1092)
Instead of naeveily checking for all reminders due in the next minute, we now check all reminders in all time zones in the next minutes. This essentially means checking for reminders due in the next 14 or past 12 hours. We then check for each user who would receive a reminder from that result if it is actually due in their time zone.

This should prevent issues where users would get the reminder in the time zone of their server, not in their own.

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1092
Co-authored-by: konrad <k@knt.li>
Co-committed-by: konrad <k@knt.li>
2022-01-16 11:05:56 +00:00
kolaente a31086a7a9
fix: lint 2021-12-12 16:03:58 +01:00
kolaente a98119f2d6
feat: save user language in the settings 2021-12-12 15:39:47 +01:00
kolaente 8bb3f8d37c
fix: importing archived lists or namespaces 2021-12-12 13:18:01 +01:00
kolaente 190a9f2a4c
fix: friendly name not getting synced on first login from openid
Resolves #874
2021-12-12 12:35:13 +01:00
kolaente 5c88dfe88e
fix: user deletion schedule 2021-12-12 12:29:05 +01:00
kolaente 70e005e7ce
fix: user not actually deleted 2021-12-12 12:28:18 +01:00
kolaente f581885e65
fix: user deletion reminder emails counting up
Resolves #1014
2021-12-12 12:24:42 +01:00
kolaente 72d3c54efd
fix: user deletion never happens
Resolves #1024
2021-12-12 12:04:17 +01:00
konrad 73ee696fc3 feat: add marble avatar (#1060)
This adds the marble avatar from [boring avatars](https://github.com/boringdesigners/boring-avatars) as an option for user avatars. Each user gets a different one (based on their id).

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1060
Co-authored-by: konrad <k@knt.li>
Co-committed-by: konrad <k@knt.li>
2021-12-07 21:11:23 +00:00
kolaente fd0d462bf4
fix: importing tasks from todoist without a due time set
Resolves #897
2021-11-23 22:29:57 +01:00
kolaente f8a0a7e953
fix: deleting users with no namespaces
resolves #984
2021-11-22 22:34:20 +01:00
Joseph Kavanagh 36bf3d216a
feat: gravatar - Lowercase emails before MD5 hash (#10) 2021-11-16 22:10:22 +01:00
kolaente 0b7762590f
fix: lint 2021-11-16 20:37:37 +01:00
kolaente c3e0e6405a
fix: importing trello attachments
Since jan 2021, trello requires authentication to access attachments. This commit passes the required auth headers to make downloading card attachments work.

resolves https://github.com/go-vikunja/api/issues/6
2021-11-14 21:47:51 +01:00
kolaente 57e5d10eee
fix: sorting for saved filters
resolves #786
2021-11-14 21:03:55 +01:00
kolaente 88a2cede19
feat: use wallpaper topic for default unsplash background list 2021-11-14 20:47:15 +01:00
kolaente 093d0c65ca
feat: enable rate limit for unauthenticated routes 2021-11-14 20:42:33 +01:00
kolaente cf05de19b3
fix: updating a list might remove its background
resolves #1039
2021-11-13 17:52:14 +01:00
kolaente 2683ef23d5
feat: expose if a user is a local user through the /user endpoint 2021-10-31 13:57:19 +01:00
kolaente 516c812043
feat: expose if a user is a local user through its jwt token 2021-10-31 12:37:31 +01:00
kolaente 9eca971c93
feat: don't require a password for data export from users authenticated with third-party auth 2021-10-31 12:37:08 +01:00
kolaente 8f55af07c9
feat: add more debug logging when deleting users
related to #1021
2021-10-27 22:08:31 +02:00
jayden-c dcb52c00f1 feat: improve account deletion email grammar (#1006)
Co-authored-by: Jayden Chan <jaydencn7@gmail.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1006
Reviewed-by: konrad <k@knt.li>
Co-authored-by: jayden-c <jaydencn7@gmail.com>
Co-committed-by: jayden-c <jaydencn7@gmail.com>
2021-10-16 21:53:33 +00:00
kolaente 50b65a517d
fix: correctly load and pass the user when deleting it
Fixes #984
2021-10-16 17:00:48 +02:00
kolaente d7e47a28d4
fix: don't try to load the namespace of a list if it is a shared list 2021-10-16 16:50:16 +02:00
kolaente c2b6119434
fix: make sure the full task is available in notifications 2021-10-16 16:38:59 +02:00
stephen-hill 82a3330412 Added the ability to configure the JWT expiry date using a new server.jwtttl config parameter. (#999)
Co-authored-by: Stephen Hill <stephen@gatekiller.co.uk>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/999
Co-authored-by: stephen-hill <stephen@gatekiller.co.uk>
Co-committed-by: stephen-hill <stephen@gatekiller.co.uk>
2021-10-09 11:02:28 +00:00
ajgon fb9fa27488 healthcheck endpoint (#998)
Co-authored-by: Igor Rzegocki <igor@rzegocki.pl>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/998
Reviewed-by: konrad <k@knt.li>
Co-authored-by: ajgon <vikunja-gitea@ajgon.ovh>
Co-committed-by: ajgon <vikunja-gitea@ajgon.ovh>
2021-10-03 18:37:02 +00:00
renovate 0ca1560bf1 fix(deps): update module github.com/swaggo/swag to v1.7.3 (#990)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/990
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2021-09-26 12:44:37 +00:00
kolaente 4de8ec56a6
fix: generate swagger docs 2021-09-26 14:18:44 +02:00
kolaente ae8db176db
feat: expose if task comments are enabled or not in /info 2021-09-26 13:37:57 +02:00
kolaente 465f6d90ab
Fix tasks not exported 2021-09-08 18:40:54 +02:00
kolaente 03d818fd9f
Fix tmp export file created in the wrong path 2021-09-08 17:44:23 +02:00
kolaente f019ae42bb
Fix exporting tasks from archived lists 2021-09-08 17:40:33 +02:00
kolaente 9000f2c3cd
Fix lint 2021-09-07 19:09:44 +02:00
kolaente cc1bb3083f
Don't try to export items which do not have a parent 2021-09-06 22:14:38 +02:00
konrad 90146aea5b User Data Export and import (#967)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/967
Co-authored-by: konrad <k@knt.li>
Co-committed-by: konrad <k@knt.li>
2021-09-04 19:26:31 +00:00
kolaente dcddaab7b5
Set todoist migration redirect url to the frontend url by default 2021-08-14 18:27:29 +02:00
kolaente 483496cc26
Fix saving reminders of repeating tasks 2021-08-13 21:36:16 +02:00
konrad 27119ad6d4 User account deletion (#937)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/937
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-08-11 19:08:10 +00:00
renovate c3da454854 Update module github.com/golang-jwt/jwt to v4 (#930)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/930
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2021-08-03 21:43:18 +00:00
renovate e38be9bd18 Update module github.com/labstack/echo/v4 to v4.5.0 (#929)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/929
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2021-08-02 18:33:53 +00:00
kolaente f237afd2ac
Fix panic on invalid smtp config 2021-08-02 00:05:13 +02:00
konrad 4c5f457313 Ensure case insensitive search on postgres (#927)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/927
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-08-01 21:40:25 +00:00
kolaente 9c2a59582a
Fix setting up keyvalue storage in tests 2021-07-30 15:31:51 +02:00
kolaente d746c1bede
Notify the user after three failed login attempts 2021-07-30 15:01:04 +02:00
kolaente 220f43331f
Reset failed totp attempts when logging in successfully 2021-07-30 14:46:10 +02:00
kolaente 24f7d9b4f7
Only send an email about failed totp after three failed attempts 2021-07-30 14:42:03 +02:00
kolaente 5cfc9bf2f9
Disable the user account after 10 failed password attempts 2021-07-29 18:45:22 +02:00
kolaente 3572ac4b82
Send a notification on failed TOTP 2021-07-29 18:05:25 +02:00
konrad 1571dfa825 Task mentions (#926)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/926
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-07-29 15:42:49 +00:00
kolaente e600f61e06
Fix moving the done bucket around 2021-07-29 17:32:33 +02:00
konrad 6ccb85a0dc Reorder tasks, lists and kanban buckets (#923)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/923
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-07-28 19:06:40 +00:00
kolaente dac315db59
Fix jwt middleware 2021-07-27 15:25:48 +02:00
kolaente eae3cbc7bb
Replace jwt-go with github.com/golang-jwt/jwt 2021-07-27 10:46:28 +02:00
kolaente d9b38b85f6
Fix setting a saved filter as favorite 2021-07-20 21:32:25 +02:00
kolaente c7f337f303
Fix tests & lint 2021-07-20 11:00:20 +02:00
kolaente 733f26f017
Fix error handling when deleting an attachment file 2021-07-20 10:14:49 +02:00
kolaente e4a0066e20
Make sure all associated entities of a task are deleted when the task is deleted 2021-07-19 23:52:58 +02:00
kolaente d28390d792
Fix task relations not getting properly cleaned up when deleting them 2021-07-19 23:40:18 +02:00
kolaente 0b90d826be
Don't notify the user who created the team 2021-07-19 23:29:25 +02:00
kolaente 4cf7c459da
Allow running migration 20210711173657 multiple times to fix issues when it didn't completely run through previously 2021-07-15 11:36:33 +02:00
kolaente 2a80e552cc
Save user tokens as varchar(450) and not text to fix mysql indexing issues 2021-07-14 14:48:27 +02:00
kolaente 7e229a1b83
Save user tokens as text and not varchar 2021-07-14 12:43:28 +02:00
konrad 4216ed7277 Refactor user email confirmation + password reset handling (#919)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/919
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-07-13 20:56:02 +00:00
kolaente d5d4d8b6ed
Fix lint 2021-07-13 12:16:12 +02:00
kolaente 9559cbf1ec
Add more logging for test data api endpoint 2021-07-13 12:14:59 +02:00
kolaente 7adbd21698
Fix setting task favorite status of related tasks
Not really reproducable locally, but a real issue.
2021-07-12 12:19:01 +02:00
kolaente e21a3904ff
Fix mapping task priorities from Vikunja to calDAV
Resolves #866
2021-07-11 15:03:50 +02:00
kolaente 562ef9af36
Add searching for tasks by index 2021-07-11 14:19:59 +02:00
konrad d0c77ad1c1 Make sure list / task favorites are set per user, not per entity (#915)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/915
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-07-10 10:21:54 +00:00
kolaente 358661e060
Change task title to TEXT instead of varchar(250) to allow for longer task titles 2021-07-09 19:46:47 +02:00
kolaente 32a07c4c61
Fix importing archived projects and done items from todoist 2021-07-08 11:37:50 +02:00
kolaente 5b825f1cc8
Make sure a bucket exists or use the default bucket when importing tasks 2021-07-08 10:34:03 +02:00
andreymal 50b49ffab6 Add support of Unix socket (#912)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/912
Reviewed-by: konrad <konrad@kola-entertainments.de>
Co-authored-by: andreymal <andriyano-31@mail.ru>
Co-committed-by: andreymal <andriyano-31@mail.ru>
2021-07-08 08:13:01 +00:00
kolaente 8b6aeb8571
Fix lint 2021-07-07 20:53:26 +02:00
kolaente 0c5dfe5c48
Better logging for errors while importing a bunch of tasks 2021-07-06 18:14:40 +02:00
kolaente d7932d2648
Don't fail when removing the last bucket in migration from other services 2021-07-06 15:43:38 +02:00
kolaente 37718c3282
Todoist migration: don't panic if no reminder was found for task
See #897
2021-06-24 23:02:28 +02:00
renovate 6018573d81 Update module github.com/coreos/go-oidc to v3 (#885)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/885
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2021-06-14 20:56:29 +00:00
renovate 6b70069eba Update module prometheus/client_golang to v1.11.0 (#879)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/879
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2021-06-11 13:08:28 +00:00
kolaente 9147e6739f
Fix authentication callback 2021-06-09 23:00:42 +02:00
kolaente 570d146b21
Fix parsing openid config when using a json config file 2021-06-09 21:56:17 +02:00
kolaente 78a206c818
Add setting for first day of the week 2021-06-03 18:11:44 +02:00
kolaente fc5703ac8c
Add truncate parameter to test fixtures setup 2021-06-03 15:30:31 +02:00
sytone 3277f6acf7 Add default list setting (#875)
Co-authored-by: Sytone <github@sytone.com>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/875
Reviewed-by: konrad <konrad@kola-entertainments.de>
Co-authored-by: sytone <kolaente@sytone.com>
Co-committed-by: sytone <kolaente@sytone.com>
2021-06-02 21:20:22 +00:00
kolaente 8a1e98a7f2
Fix goimports 2021-05-31 21:05:14 +02:00
kolaente 9a2655dbf1
Fix saving pointer values to memory keyvalue 2021-05-31 20:54:15 +02:00
kolaente d48aa101cf
Refactor & fix storing struct-values in redis keyvalue 2021-05-28 10:52:51 +02:00
kolaente df45675df3
Rearrange setting frontend url in config 2021-05-28 08:46:31 +02:00
kolaente afd6bde74d
Make sure the configured frontend url always has a / at the end 2021-05-28 08:39:27 +02:00
kolaente e23014dbe4
Fix swagger docs for create requests 2021-05-26 21:56:31 +02:00
kolaente 8e65ffb99b
Fix duplicating empty lists 2021-05-26 12:01:50 +02:00
kolaente 3f6d85497f
Fix error when searching for a namespace returned no results 2021-05-26 12:00:55 +02:00
kolaente 88b9ea6a96
Fix error when searching for a namespace with subscribers 2021-05-26 11:04:29 +02:00
kolaente 3973ce985d
Try to get more information about the user when authenticating with openid 2021-05-19 14:45:24 +02:00
kolaente 2e52cc1802
Fix lint 2021-05-17 12:15:15 +02:00
kolaente 20ede346b4
Only filter out failing openid providers if multiple are configured and one of them failed 2021-05-16 13:28:15 +02:00
kolaente b76ad8efe2
Add more logging and better error messages for openid authentication + clarify docs 2021-05-16 13:23:10 +02:00
kompetenzbolzen 86b7d224ab Expose tls parameter of Go MySQL driver to config file (#855)
Co-authored-by: Jonas Gunz <himself@jonasgunz.de>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/855
Reviewed-by: konrad <konrad@kola-entertainments.de>
Co-authored-by: kompetenzbolzen <himself@jonasgunz.de>
Co-committed-by: kompetenzbolzen <himself@jonasgunz.de>
2021-05-08 14:54:55 +00:00
kolaente 9dc72c5c98
Use golang's tzdata package to handle time zones 2021-05-07 12:18:21 +02:00
kolaente 0f5f85e687
Fix tests 2021-04-22 17:13:47 +02:00
kolaente 4ceeb877b1
Fix checking list rights when accessing a bucket 2021-04-22 16:44:42 +02:00
kolaente 6e263b6a91
Improve sending overdue task reminders by only sending one for all overdue tasks 2021-04-18 15:32:02 +02:00
kolaente 7ff7b0d743
Improve duration format of overdue tasks in reminders 2021-04-18 14:25:50 +02:00
kolaente f429efc220
Add bucket limit validation 2021-04-15 16:55:21 +02:00
kolaente 6e5a9868f5
Fix moving repeating tasks to the done bucket 2021-04-15 16:36:24 +02:00
konrad b4d726f5a8 Add repeat monthly setting for tasks (#834)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/834
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-04-14 09:04:58 +00:00
konrad d07b284ee3 Add reminders for overdue tasks (#832)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/832
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-04-11 15:08:43 +00:00
konrad b3c604fd2f Add link share password authentication (#831)
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/831
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-04-11 13:17:50 +00:00
kolaente 126f3acdc8
Enable searching users by full email or name 2021-04-07 18:28:58 +02:00
kolaente 8ddc00bd29
Fix getting user info from /user endpoint for link shares 2021-04-07 15:02:57 +02:00
kolaente cb0df3ebbc
Show empty avatar when the user was not found 2021-04-07 14:56:44 +02:00
konrad 84291679cc Add names for link shares (#829)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/829
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-04-07 12:44:39 +00:00
kolaente 0b8173c1c3
Fix not able to make saved filters favorite 2021-04-03 16:49:20 +02:00
kolaente 73f2d4532d
Make sure all tables are properly pluralized 2021-03-28 20:17:35 +02:00
kolaente 6c3488b8aa
Fix event error handler retrying infinitely 2021-03-28 17:55:19 +02:00
kolaente be3184d49f
Add test for moving a task to another list 2021-03-24 22:47:03 +01:00
konrad 81d021e872 Improve loading labels performance (#824)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/824
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-03-24 21:46:20 +00:00
konrad d1b87d2705 Add a "done" option to kanban buckets (#821)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/821
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-03-24 20:16:35 +00:00
kolaente 7b29ac7128
Fix user uploaded avatars 2021-03-23 22:32:23 +01:00
kolaente 532855d850
Fix filter for task index 2021-03-21 18:48:41 +01:00
kolaente ee436efba3
Add endpoint to remove a list background 2021-03-21 17:49:14 +01:00
kolaente 6fa95e6492
Fix getting lists for shared, favorite and saved lists namespace 2021-03-18 21:39:38 +01:00
kolaente 67167d4abb
Fix shared lists showing up twice 2021-03-14 21:12:03 +01:00
konrad 466b2b676c Pagingation for tasks in kanban buckets (#805)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/805
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-03-10 10:59:10 +00:00
kolaente 6de3d8b3a1
Explicitly check if there are Ids before trying to get items by a list of Ids 2021-03-02 18:40:39 +01:00
kolaente 3999580fe6
Add basic auth for metrics endpoint 2021-02-28 11:29:53 +01:00
kolaente 4880a0265b
Fix notifications table not being created on initial setup 2021-02-22 21:20:13 +01:00
konrad 2178166ece Add crud endpoints for notifications (#801)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/801
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-21 14:50:34 +00:00
kolaente eb3a945678
Fix deleting task relations
While the request body of a DELETE request *can* have data in it, it is not really supported and pretty much undocumented. As such, it doesn't work in all clients and probably broke with recent updates.
This fixes this by moving all parts of the task relation used to identify it in the url.

More Info: https://stackoverflow.com/a/299696/10924593
2021-02-18 23:35:33 +01:00
kolaente d8623fe185
Cleanup listener names 2021-02-17 20:50:04 +01:00
kolaente c873c1ec32
Send a notification to the user when they are added to the list 2021-02-17 20:48:06 +01:00
kolaente 0bd27ddeb7
Subscribe a user to a task when they are assigned to it 2021-02-17 20:14:38 +01:00
kolaente aaeb89db4f
Refactor getting all namespaces 2021-02-16 22:36:06 +01:00
kolaente 911e5b22ee
Fix lint 2021-02-14 23:11:39 +01:00
kolaente bef22f5756
Fix tests 2021-02-14 23:03:44 +01:00
kolaente 83f003355d
Fix sending notifications to users if the user object didn't have an email 2021-02-14 22:44:01 +01:00
konrad e7875ecb3b Subscriptions and notifications for namespaces, tasks and lists (#786)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/786
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-14 19:18:14 +00:00
konrad 015ca310e9 Add notifications package for easy sending of notifications (#779)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/779
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-07 21:05:09 +00:00
kolaente 9fe46f9a61
Don't try to get users for tasks if no tasks were found when looking for reminders 2021-02-07 14:46:47 +01:00
kolaente 490ba2ea50
Fix due dates with times when migrating from todoist 2021-02-04 21:06:01 +01:00
kolaente fb53322d40
Change the name of the newly created bucket from "New Bucket" to "Backlog" 2021-02-04 20:48:07 +01:00
kolaente d600d8b5a6
Fix IncrBy and DecrBy in memory keyvalue implementation if there was no value set previously 2021-02-03 21:59:45 +01:00
konrad 0ab9ce9ec4 Add events (#777)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/777
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-02 22:48:37 +00:00
kolaente c4a71016b8
Update copyright year 2021-02-02 20:19:13 +01:00
kolaente 657dcc5313
Fix lint 2021-01-31 13:51:23 +01:00
kolaente 2d283b78c2
Fix the shared lists pseudo namespace containing owned lists 2021-01-31 13:09:14 +01:00
kolaente 6bdc1fdb0d
Only send reminders for undone tasks 2021-01-31 12:54:15 +01:00
kolaente d69c799197
Fix resetting the bucket limit 2021-01-31 12:40:02 +01:00
kolaente 2e88600c93
Change keyvalue.Get to return if a value exists or not instead of an error 2021-01-31 12:32:46 +01:00
konrad 2447f84e2b Fix /dav/principals/*/ throwing a server error when accessed with GET instead of PROPFIND (#769)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/769
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-01-16 14:37:35 +00:00
kolaente e16c5f72ca
Fix setting the user in created_by when uploading an attachment 2021-01-15 22:50:55 +01:00
kolaente 20af034d78
Fix retrieving over openid providers if there are none
Fixes #767
2021-01-15 20:40:07 +01:00
konrad adf1172c39 Add tests for sending task reminders (#757)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/757
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-01-09 13:59:54 +00:00
kolaente ac23536c36
Make sure a password reset token can be used only once 2020-12-30 21:51:45 +01:00
kolaente 787044628f
Fix password reset without a reseet token 2020-12-30 21:43:14 +01:00
kolaente 456af4d4a9
Fix go header lint 2020-12-29 02:04:20 +01:00
kolaente 9baf6d39bd
Change license to AGPLv3 2020-12-23 16:41:52 +01:00
konrad 8d1a09b5a2 Use db sessions everywere (#750)
Fix lint

Fix lint

Fix loading tasks with search

Fix loading lists

Fix loading task

Fix loading lists and namespaces

Fix tests

Fix user commands

Fix upload

Fix migration handlers

Fix all manual root handlers

Fix session in avatar

Fix session in list duplication & routes

Use sessions in migration code

Make sure the openid stuff uses a session

Add alias for db type in db package

Use sessions for file

Use a session for everything in users

Use a session for everything in users

Make sure to use a session everywhere in models

Create new session from db

Add session handling for user list

Add session handling for unsplash

Add session handling for teams and related

Add session handling for tasks and related entities

Add session handling for task reminders

Add session handling for task relations

Add session handling for task comments

Add session handling for task collections

Add session handling for task attachments

Add session handling for task assignees

Add session handling for saved filters

Add session handling for namespace and related types

Add session handling for namespace and related types

Add session handling for list users

Add session handling for list tests

Add session handling to list teams and related entities

Add session handling for link shares and related entities

Add session handling for labels and related entities

Add session handling for kanban and related entities

Add session handling for bulk task and related entities

Add session handling for lists and related entities

Add session configuration for web handler

Update web handler

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/750
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-23 15:32:28 +00:00
kolaente fa68e89c04
Add task filters for kanban
Signed-off-by: kolaente <k@knt.li>
2020-12-22 12:38:05 +01:00
konrad 2d4e2e452c Add task filter for lists and namespaces (#748)
Add more tests for getting namespaces

Fix namespaces not found

Fix namespaces not found

Make like the default

Update docs & fix docs

Enable searching namespaces by their ids

Enable searching lists by their ids

Enable searching labels by their ids

Enable searching by user ids

Update docs

Add namespace filter

Add task filter for lists

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/748
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-21 23:13:15 +00:00
konrad 03e4bf30c2 Add task filter for labels (#747)
Update docs

Add task filter for labels

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/747
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-20 12:41:36 +00:00
konrad 18325e964d Add task filter for assignees (#746)
Update docs

Add filter by assignee

Fix string values

Update docs

Update docs

Make "in" task filter actually work

Add "in" filter type

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/746
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-19 21:39:11 +00:00
konrad 92bcce3f7c Add task filter for reminders (#745)
Update swagger docs about reminders

Fix filter concat for reminders

Add task filter for reminders

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/745
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-19 15:14:20 +00:00
kolaente 9508d0faee
Fix missing auto increments from b0d4902406 on mysql
Fixes #744
2020-12-19 15:04:30 +01:00
kolaente 90817b6dae
Add "like" filter comparator 2020-12-19 13:56:55 +01:00
konrad b2e4fde63a Add email reminders (#743)
Fix tests

Expose email reminder setting through jwt

Set reminders on by default

Fix lint

Make user email configurable

Expose email reminder setting through /info

Don't try to send any reminders if none were found

More spacing for buttons

Fix db time format

Enable reminders by default

Make emails look more like the frontend

Add config to disable it

Add sending emaisl

Add getting all task users and reminding them

Add getting the next reminder in a cron

Move task reminder to separate file

Add cron

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/743
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 23:21:17 +00:00
kolaente 27c44d6d5e
Change avatar endpoint 2020-12-18 23:11:11 +01:00
konrad b0d4902406 Make sure all int64 db fields are using bigint when actually storing the data (#741)
Fix lint

Fix migration query for postgres

Fix migration statements

Add migration to make all int(11) fields bigint by default

Make all int(11) fields bigint by default

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/741
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 16:51:22 +00:00
renovate f15a8baee3 Update module ulule/limiter/v3 to v3.8.0 (#699)
fmt

Upgrade redis client to v8 everywhere

Update module ulule/limiter/v3 to v3.8.0

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/699
Co-Authored-By: renovate <renovatebot@kolaente.de>
Co-Committed-By: renovate <renovatebot@kolaente.de>
2020-12-18 15:21:21 +00:00
konrad 0bd2632d29 Add login via email (#740)
Add login via email

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/740
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 13:54:49 +00:00
konrad 8d739b2cf9 Refactor adding more details to tasks (#739)
Refactor adding more details to tasks

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/739
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 13:54:36 +00:00
kolaente ccfa019870
Don't create a list identifier by default 2020-12-18 13:07:34 +01:00
konrad 969e467f48 Add colors for caldav (#738)
Add colors for caldav

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/738
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 12:04:27 +00:00
konrad f5b5204776 Add Microsoft Todo migration (#737)
Add more logs

Fix lint

Generate docs

Add swagger docs

Add microsoft todo parsing logic

go mod tidy

Add basic test structure

Add more fields to tasks

rename microsoft todo package

Add getting microsoft todo data

Add structs and helper methods

Add microsoft todo config and routes

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/737
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 11:12:05 +00:00
konrad 9f3d898150 Add trello migration (#734)
Fix tests for background images

Generate docs

Fix lint

Do the swag

Add more logging

Remove the default bucket if it was empty

Add launch.json

Make importing backgrounds work

Add comment

Fix getting task attachments

Fix getting trello token

Add trello migration routes and status

Add support for converting checklists

Add test for attachments

Add the actual conversion

Add Trello conversion test

Add migration function stubs

Add basic trello migration structure

Add trello migration config

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/734
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-17 13:44:04 +00:00
konrad 00ed5884b4 Add support for migrating todoist boards (#732)
Add migrating buckets to converting todoist to vikunja structure

Add buckets migration

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/732
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-16 14:19:09 +00:00
kolaente e4de700a10
Simplify updating task reminders 2020-12-16 13:05:58 +01:00
renovate 08430f1951 Update golang.org/x/crypto commit hash to c8d3bf9 (#710)
Change terminal package

Update golang.org/x/crypto commit hash to c8d3bf9

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/710
Co-Authored-By: renovate <renovatebot@kolaente.de>
Co-Committed-By: renovate <renovatebot@kolaente.de>
2020-12-02 21:33:03 +00:00
konrad 9334b29366 Add testing endpoint to reset db tables (#716)
Fix lint

Better error messages

Add docs

Add testing endpoint to reset db

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/716
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-11-28 23:08:30 +00:00
kolaente d2d610e0f5
Fix /info endpoint 500 error when no openid providers were configured 2020-11-26 21:26:31 +01:00
kolaente ae6144c042
Fix getting current user when updating avatar or user name 2020-11-21 22:02:49 +01:00
kolaente d1c65935e6
Add name field to users 2020-11-21 21:51:55 +01:00
konrad 2b5c9ae7a8 Authentication with OpenID Connect providers (#713)
Add config docs

Lint

Move provider-related stuff to separate file

Refactor getting auth providers

Fix tests

Fix user tests

Fix openid tests

Add swagger docs

Fix lint

Fix lint issues

Fix checking if the user already exists

Make sure to create a new namespace for new users

Docs

Add tests for openid

Remove unnessecary err check

Consistently return nil users if creating a new user failed

Move sending confirmation email to separate function

Better variable names

Move checks to separate functions

Refactor creating user into seperate file

Fix creating new local users

Test creating new users from different issuers

Generate a random username right away if no preferred username has been given

Add todo

Cache openid providers

Add getting int clientids

Fix migration

Move creating tokens to auth package

Add getting or creating a third party user

Add parsing claims

Add retreiving auth tokens

Add token callback from openid package

Add check for provider key

Add routes

Start adding openid auth handler

Add config for openid auth

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/713
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-11-21 16:38:58 +00:00
kolaente 316ac0558b
Fix task updated timestamp not being updated in the response after updating a task 2020-10-25 12:59:28 +01:00
freaktechnik ffce9b51cc Fix completion status in DAV for OpenTasks and multiline descriptions (#697)
Add tests for multiline descriptions and completed state

Fix caldav descriptions

Fix caldav task complete status for OpenTasks

Co-authored-by: Martin Giger <martin@humanoids.be>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/697
Co-Authored-By: freaktechnik <martin@humanoids.be>
Co-Committed-By: freaktechnik <martin@humanoids.be>
2020-10-21 21:03:19 +00:00
kolaente 707709deb1
Fix not possible to create tasks if metrics were enabled 2020-10-20 20:28:44 +02:00
freaktechnik 214f2f008e Support absolute iCal timestamps in CalDAV requests (#691)
no need to export from there I think

parse absolute ical timestamps

Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-authored-by: Martin Giger <martin@humanoids.be>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/691
Co-Authored-By: freaktechnik <martin@humanoids.be>
Co-Committed-By: freaktechnik <martin@humanoids.be>
2020-10-19 09:11:15 +00:00
freaktechnik 1555081939 fetch tasks for caldav lists (#641)
Fix shadowed error

Panic if a TaskCollection.ReadAll does not return []*models.Task

Fetch tasks for caldav lists

Co-authored-by: kolaente <k@knt.li>
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-authored-by: Martin Giger <martin@humanoids.be>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/641
Co-Authored-By: freaktechnik <martin@humanoids.be>
Co-Committed-By: freaktechnik <martin@humanoids.be>
2020-10-18 10:40:50 +00:00
renovate 7fe9e6d3f6 Update module swaggo/swag to v1.6.8 (#680)
Regenerate swagger docs with new swaggo

Update module swaggo/swag to v1.6.8

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/680
Co-Authored-By: renovate <renovatebot@kolaente.de>
Co-Committed-By: renovate <renovatebot@kolaente.de>
2020-10-17 18:03:05 +00:00
kolaente 38b5c7fb6c
Add checks if tasks exist in maps before trying to access them
Signed-off-by: kolaente <k@knt.li>
2020-10-12 19:33:17 +02:00
kolaente e26df26f78
Fix migrating items with large items from todoist
see #266
2020-10-12 08:08:52 +02:00
konrad 699d3d6060 Add Golangci Lint (#676)
Increase golangci timeout

Fix installing golangci-lint in ci

Remove mage targets replaced by golangci

Run golint in ci

Add goheader linter

Enable & fix more linters

Fix lint issues

Add mage target to automagically fix issues found by golangci

golangci-lint run --fix

Add golangci config

Add golangci mage target

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/676
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-10-11 20:10:03 +00:00
konrad d56a611be7 Key-Value Storages (#674)
Fix lint

Add docs for keyvalue config options

Use keyvalue store to cache unsplash photo results

Cleanup

Use keyvalue store for upload avatar

Use keyvalue store for initials avatar

Fix initializing metrics

Use keyvalue for metrics

Add IncryBy and DecrBy methods to increase or decrease a value

Fix lint

Return custom error if a key does not exist

Init keyvalue storage

Follow the keyvalue storage setting for things like cache and other

Add docs

Add configuration of the storage backend

Add redis keyvalue storage implementation

Add doc comments

Add methods to use storage through the package itself

Add memory implementation for keyvalue store

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/674
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-10-10 16:53:59 +00:00
kolaente b3d09cd2d4
Fix loading list background information for uploaded backgrounds
Signed-off-by: kolaente <k@knt.li>
2020-09-28 20:53:17 +02:00
konrad 64d125afd9 Testing improvements (#666)
Change method names to avoid doubling db

Assert team test exists

Assert team member test exists

Assert task test exists

Assert task relation test exists

Assert task comment test exists

Better tests for team namespaces

Assert exists in namespace users tests

Assert exists in namespace tests

Assert exists in user list tests

Assert exists in list tests

Better team list tests

Assert label tests exist in db

Assert label task tests exist in db

Assert label task tests exist in db

Assert kanban tests exist in db

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/666
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-09-27 15:45:17 +00:00
kolaente 1776eb56fe
Fix upload avatar not working
Signed-off-by: kolaente <k@knt.li>
2020-09-27 12:50:52 +02:00
konrad 0fb2edf051 Saved filters (#655)
Fix updating saved filters

Fix filter not loadable because of missing param declaration

Add fancy special cases for postgres exists in db

Add special case for postgrs json

Add read one test

Add rights tests

Fix lint

Fixed getting a single saved filter from db

Add tests for the usual crud methods

Add test stubs and TODOs

Add test for converting saved filter ids to list ids and vice versa

Add test fixture for saved filters and fix existing tests

Fix exposed json variables of filters

Fix creating saved filters table for tests

Add getting saved filters as pseudo namespace

Cleanup

Refactor getting all namespaces to use a map for easier handling of pseudo namespaces

Add custom erros for saved filters

Swagger docs

Fix lint

Add routes for saved filters

Add alias for mage build

Add method to get a saved filter from the lists endpoint

Add getting tasks from a saved filter

Add create, update, delete, read one methods

Add rights methods for saved filters

Fix docs minLength

Add saved filters column

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/655
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-09-26 21:02:17 +00:00
konrad 6bdddd462a Favorite lists (#654)
Add tests

Remove the favorites pseudo namespace if there are no lists or tasks favorited

Regenerate swagger docs

Fix favorite lists not being updated because of nonexisting users (the favorite list does not have one)

Make the pseudo favorites list always favorited

Add favorited lists to the favorites pseudo namespace

Add favorite field to list

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/654
2020-09-06 14:20:16 +00:00
konrad e5559137dd Favorite tasks (#653)
Fixed namespace tests

Add test for favorite tasks

Fix favorite tasks not being updated

Fix integration tests

Fix lint

Return a pseudo namespace and list for favorites

Make sure users can only see their favorites

Add condition show tasks from the favorites list

Regenerate swagger docs

Add favorite field to task

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/653
2020-09-05 20:16:02 +00:00
kolaente ecf09e17a8
Only check if a bucket limit is exceeded when moving a task between buckets 2020-09-04 22:01:33 +02:00
konrad 14d706c91e Kanban bucket limits (#652)
Fix integration tests

Generate swagger docs

Add test for moving a task between buckets

Add check for bucket limit when updating a task

Add fixture to ensure a bucket with a high limit will never exceed the limit

Refactor bucket limit check into seperate function

Add test for creating and fix

Fix unexported field

Add error in case a task was added to a bucket which has its limit already exceeded

Add migration to add new task field

Add limit field to buckets

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/652
2020-09-04 14:37:56 +00:00
kolaente e9b1786188
Regenerate swagger docs 2020-09-04 13:15:46 +02:00
kolaente e4dd314079
Add caldav enabled/disabled to /info endpoint 2020-09-04 09:58:42 +02:00
konrad d359130bcf Switch to mage (#651)
Add comment about magefile compile

Switch make to mage commands in drone

Fix misspell

Update docs

Add general release command

Add reprepro command

Make sure the filename contains the proper version

Add deb package building

Add zip command

Preserve file permissions when copying files

Fix release:os-package

Make sure to not create checksums of directories

Cleanup

Only compress what upx is able to compress

Add check command

Add release:os-package command

Add copy command

Add comments

Add compress step

Move releasing binaries to a more general function and add ones of linux + darwin

Add release:windows command

Add release:dir command

Add namespaces for commands

Reorder

Add command to run all checks at once

Add goconst-check

Add gosec-check

Add static-check

Add gocyclo-check

Add ineffasign-check

Add misspell-check

Add command to check for swagger docs regeneration

Add comments

Add command to generate swagger docs

Reorder

Add check for installing golint before running it

Add fmt check command

Add fmt command

Use runAndStreamOutput everywhere

Add aliases and comments

Add todo

Reorder

Add test coverage command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/651
2020-09-03 15:13:19 +00:00
kolaente fa718e2576
Fix token renew for link shares
Signed-off-by: kolaente <k@knt.li>
2020-08-18 16:55:44 +02:00
kolaente c517a87b85
Don't add a subtask to the top level of tasks to not add it twice in the list 2020-08-17 22:30:24 +02:00
kolaente a58b932743
Work around tasks with attachments not being duplicated 2020-08-16 23:44:16 +02:00
kolaente 301bebf8d3
Only try to download attachments from todoist when there is a url
Credit: freaktechnik
2020-08-16 23:26:19 +02:00
kolaente d192c36c39
Add better tests for namespaces 2020-08-15 22:16:36 +02:00
kolaente bdfb804bb2
Fix reading passwords on windows 2020-08-13 17:59:10 +02:00
konrad 16dbcfda7e Manage users via cli (#632)
Add users cli commands to docs

Fix checking for changing username or user email

Add user status change command

Make sure only one user exists with a particular email when updating

Add password reset

Add user id to help

Remove user delete (too many possible side effects, postponed until later)

Make sure to fail on any errors

Fail if changing the username would result in duplicate users

Add user update command

Add user create command

Add command stubs for all commands

Render users in a beautiful table

Started adding user list command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/632
2020-08-13 15:34:02 +00:00
kolaente 4a70c81b33
Make sure to require admin rights when modifying list/namespace users to be consistent with teams
Signed-off-by: kolaente <k@knt.li>
2020-08-12 18:20:47 +02:00
konrad bd8c1c3bb7 Return rights when reading a single item (#626)
Fix lint

Update docs

Fix loading all rights (list & namespace)

Add tests

Update web framework

Make tests run again

Update all calls to CanRead methods

Update task attachment & task comment & task rights to return the max right

Update team rights to return the max right

Update namespace rights to return the max right

Update list rights to return the max right

Update link share rights to return the max right

Update label rights to return the max right

Update web dependency

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/626
2020-08-10 12:11:43 +00:00
kolaente d718d247c8
Fix users with disabled totp but not enrolled being unable to login 2020-08-07 16:41:35 +02:00
kolaente 6a82d4e2af
Fix updating team admin status 2020-08-05 17:28:11 +02:00
kolaente 11722bf029
Add update route to toggle team member admin status 2020-08-05 17:21:17 +02:00
konrad dfb7730b63 More avatar providers (#622)
Don't fail if the last avatar file does not exist when deleting it

Fix lint

Remove old global avatar setting and update docs

Generate docs

Invalidate the avatar cache when uploading a new one

Add debug logs

Add caching for upload avatars

Add cache locks

Fix encoding

Resize the uploaded image to a max of 1024 pixels

Remove the old uploaded avatar if one already exists

Add mimetype check for images

Set avatar provider to upload when uploading an avatar

Add upload avatar provider

Make font size smaller to let the initials still look good in smaller sizes

Add debug log

Add cache and resizing of initials avatars

Make font size depend on avatar size

Add drawing initials avatar

Add initials provider

Make the initials avatar provider the default

Add routes

Add user avatar settings handler methods

Add user avatar provider field

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/622
2020-08-02 17:16:58 +00:00
konrad e4539ef232 Use db sessions for task-related things (#621)
Use db sessions for task-related things

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/621
2020-08-01 16:54:38 +00:00
kolaente 41cf73a473
Add option to configure legal urls 2020-07-18 18:53:56 +02:00
kolaente 9acba7d3f0
Fix duplicating a list with background 2020-07-17 14:16:59 +02:00
kolaente 2d567bfe0f
Make sure lists which would have a duplicate identifier can still be duplicated
+ debug logging for duplicating lists
2020-07-17 13:26:49 +02:00
kolaente 092aae3260
Add config option to force ssl connections to connect with the mailer 2020-07-14 17:30:39 +02:00
konrad 4db06ba9a1 Fix creating lists with non ascii characters (#607)
Fix test name

Fix migrating lists with non utf-8 characters in their name

Fix creating lists with non utf-8 characters

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/607
2020-07-07 07:48:12 +00:00
kolaente 78791f31a4
Fix parsing todoist reminder dates 2020-07-05 20:49:29 +02:00
kolaente ec3fa9300b
Fix parsing todoist reminder dates 2020-07-05 17:48:36 +02:00
kolaente ae12871bd7
Fix decoding active users from redis 2020-07-02 23:19:03 +02:00
kolaente 7141050f8b
Make sure the metrics map accesses only happen explicitly 2020-07-02 21:16:39 +02:00
kolaente f57b7e989f
Fix updating the index when moving a task 2020-07-01 16:54:18 +02:00
kolaente 556ccd68c1
Set the list identifier when creating a new task 2020-07-01 11:17:18 +02:00
konrad 1181039249 Duplicate Lists (#603)
Fix buckets not being duplicated correctly

Fix list id param not working

Add api endpoint

Add swagger docs

Add comment about test

Make duplicating actually work

Add copying link shares

Add copying list backgrounds

Add copying task relations

Add copying task comments

Add copying assignees

Add copying task task label relations

Add copying task attachments

Add duplicating tasks

Add basic struct and methods

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/603
2020-06-30 20:53:14 +00:00
kolaente 9750a23dbe
Make the db timezone migration mysql compatible 2020-06-30 11:29:47 +02:00
kolaente 1c93aab7e0
Fix not loading timezones on all operating systems 2020-06-30 09:55:46 +02:00
kolaente 3b2289c8fa
Fix swagger docs 2020-06-28 16:25:46 +02:00
kolaente 2820d92ab3
Expose namespace id when querying lists 2020-06-27 23:00:15 +02:00
konrad 08205008e7 Migrate all timestamps to real iso dates (#594)
Fix query param name

Add option to include null results when filtering

Always set db time to gmt

Fix null filter

Fix timezone setting for todoist parsing

Fix timezone setting for wunderlist parsing

Fix import

Fix caldav reminder parsing

Use timezone from config

Add error and test for invalid filter values

Fix integration tests

Remove task collection date hack

Fix task filter

Fix lint

Fix tests and fixtures for date timezone stuff

Properly set timezone

Change fixtures time zone to gmt

Set db timezone

Set created and updated timestamps for all fixtures

Fix lint

Fix test fixtures

Fix misspell

Fix test fixtures

Partially fix tests

Remove timeutil package

Remove adding _unix suffix hack

Remove _unix suffix

Move all timeutil.TimeStamp to time.Time

Remove all Unix suffixes in field names

Add better error messages when running migrations

Make sure to not migrate 0 unix timestamps to 1970 iso dates

Add migration script for sqlite

Add converting sqlite values

Convert 0 unix timestamps to null in postgres

Convert 0 to null in timestamps

Automatically rename _unix suffix

Add all tables and columns for migration

Fix sql migration query for mysql

Fail with an error if trying to use an unsupported dbms

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/594
2020-06-27 17:04:01 +00:00
kolaente e17cac854a
Fix removing existing sqlite files 2020-06-27 16:34:53 +02:00
kolaente 974d028e51
Fix sqlite db not working when creating a new one 2020-06-26 19:45:19 +02:00
kolaente be11362533
Fix searching for unsplash pictures with words that contain a space 2020-06-26 00:37:10 +02:00
kolaente 912abb3a10
Fix namespace title not being updated 2020-06-26 00:03:28 +02:00
kolaente 0add1dce01
Add go version to version command 2020-06-25 15:59:06 +02:00
kolaente c8605d6b3d
Enable upload backgrounds by default 2020-06-23 22:53:23 +02:00
kolaente caee123f9d
Add better errors if the sqlite db file is not writable 2020-06-23 11:21:42 +02:00
kolaente 150c3f032c
Prevent crashing when trying to register with an empty payload 2020-06-21 20:54:46 +02:00
konrad e4f150bbe3 Restore command (#593)
Add waiting for changes to config file

Add max size for config files

Restore files

Restore database file

Expose migrate to

Move init stuff to seperate package

Add restoring config file

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/593
2020-06-21 15:30:48 +00:00
kolaente db0126968a
Improve memory usage of dump by not loading all files in memory prior to adding them to the zip 2020-06-20 11:48:45 +02:00
kolaente c12bac0c96
Return errors when dumping 2020-06-20 11:37:51 +02:00
konrad fba333866d Add dump command (#592)
Fix files location in dump

Fix gitignore

Add docs

Add dumps to gitignore

Move dump to seperate package

logging

Dump files

Dump version

Dump database

Dump config

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/592
2020-06-19 21:29:02 +00:00
konrad d02d413c5e Sentry integration (#591)
Use sentry echo integration to send errors

Only capture errors not already handled by echo

Add sentry panic handler

Add sentry library

Add sentry init

Add sentry config

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/591
2020-06-19 18:47:15 +00:00
kolaente 021e3e307b
Remove build date from binary 2020-06-18 19:26:53 +02:00
kolaente 525a547500
Remove min length for labels, lists, namespaces, tasks and teams 2020-06-17 18:52:23 +02:00
kolaente ca4d5000ed
Add list background information when getting all lists 2020-06-16 18:57:08 +02:00
kolaente 24c1098736
Fix resetting list, label & namespace colors 2020-06-15 11:32:07 +02:00
konrad 47d7e713af Repeat tasks after completion (#587)
Fix integration tests

Add updating start and end date from current date

Add updating reminders from current date

Add updating reminders from current date

Add updating due date from current date

Add updating flag

Add tests

Add field to repeat a task after current date

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/587
2020-06-14 11:04:38 +00:00
konrad ab1d58959f Ensure task dates are in the future if a task has a repeating interval (#586)
Ensure task dates are in the future if a task has a repeating interval

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/586
2020-06-13 21:32:31 +00:00
kolaente f5e44d9eb3
Reorganize cmd init functions 2020-06-13 19:44:45 +02:00
kolaente d9d00ba60c
Fix migration 20200516123847 2020-06-13 19:33:48 +02:00
kolaente a15b1bebba
Fix migration 20200425182634 2020-06-13 19:27:12 +02:00
konrad a0ffe89056 List Background upload (#582)
Add filesize check when uploading a new file

Fix error 500 if the uploaded background was not an unsplash one

Add upload background setting to info endpoint

Add config docs

Fix lint

Return list background type if it was uploaded

Add file upload

Add docs

Save uploaded backgrounds as file

Add background upload handler

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/582
2020-06-11 17:31:37 +00:00
kolaente 32a5dff78d
Fix migration to add position to task
Signed-off-by: kolaente <k@knt.li>
2020-06-07 18:28:49 +02:00
kolaente d63666cece
Fix getting unsplash thumbnails for non "photo-*" urls 2020-05-31 22:40:27 +02:00
kolaente d8a6acda96
Fix proxying unsplash images (security) 2020-05-31 22:36:25 +02:00
kolaente 03ef48a0ae
Properly ping unsplash when using unsplash images 2020-05-31 22:06:59 +02:00
kolaente 8f35b9d579
Set unsplash empty collection caching to one hour 2020-05-31 20:50:51 +02:00
kolaente ebfa982c72
Fix misspell 2020-05-31 18:12:32 +02:00
kolaente 2fa4fcc202
Fix caching of initial unsplash results per page 2020-05-31 18:09:46 +02:00
kolaente ad67154e26
Add cache for initial unsplash collection 2020-05-31 17:59:39 +02:00
kolaente 250c45d1b9
Remove migration dependency to models 2020-05-30 17:09:35 +02:00
kolaente a525787ab7
Update and fix staticcheck 2020-05-29 22:15:21 +02:00
kolaente aae1bc3cab
Load the list when setting a background 2020-05-29 22:12:16 +02:00
kolaente 42ddee8d6f
Add logging if downloading an image from unsplash fails 2020-05-29 22:11:49 +02:00
kolaente 5a04f1ecf4
Add option to disable totp for everyone 2020-05-29 17:15:59 +02:00
kolaente a0fb8bd32d
Add unsplash image proxy for images and thumbnails 2020-05-29 15:33:46 +02:00
konrad c685250c96 Add test mail command (#571)
Add test mail command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/571
2020-05-29 13:10:06 +00:00
kolaente 2ef2c7523d
Also return unsplash info when searching 2020-05-27 22:12:12 +02:00
konrad e5e30d0915 List Backgrounds (#568)
Return the updated list when setting a list background

Add swagger docs for unsplash methods

Add unsplash info to search results

Fix misspell

Fix lint

Add rights check for setting and getting backgrounds

Show unsplash information when loading a single list

Make application id for pingbacks configurable

Remove old backgrounds when setting a new one

Return 404 if the list does not have a background

Implement getting list backgrounds

Implement actually setting a photo from unsplash as list background

go mod tidy

Add migration for background file id

Roughly implement setting a list background from unsplash

Implement saving a background

Add migration for unsplash photo table

Add unsplash search

Fix parsing page param

Fix parsing page param

Fix background config

Add unsplash wrapper library

Add enabled background providers to info endpoint

Add config options for backgrounds

Add unsplash background provider

Add routing handler for backgrounds

Add basic background provider interface

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/568
2020-05-26 20:07:55 +00:00
kolaente e9bc3246ce
Add todoist migrator to available migrators in info endpoint if it is enabled 2020-05-24 12:51:38 +02:00
konrad e89e6d47d4 Todoist Migration (#566)
Add swagger docs + fix lint

Add parsing logic + fix fixtures

Fix test init

Add logging to creating labels and debug logs

Add creating labels when migrating

Finish test fixtures

Started adding fixtures for testing

Add method and test structures to convert todoist to vikunja

Add basic structure to migrate everything

Add all structs for todoist api

Add docs for config options

Add routes for todoist migrator

Add api token exchange

Add basic structure for todoist migration

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/566
2020-05-23 20:50:54 +00:00
kolaente f0b1de5ec6
Use the db logger instance for logging migration related stuff 2020-05-23 18:33:11 +02:00
kolaente 98ef052967
Don't return all tasks when a user has no lists 2020-05-19 17:22:10 +02:00