Commit Graph

430 Commits

Author SHA1 Message Date
eikek
029335e607 Working poc of postgresql based fulltext search backend 2022-03-21 11:04:26 +01:00
eikek
b2add008ed Pass language when updating fulltext index 2022-03-21 11:04:26 +01:00
eikek
f2a2d15e7f Add missing fixup changesets 2022-03-21 10:28:21 +01:00
eikek
37b5a4dfef Select linked items from search page
- Quickly select related items from the search view
- Include related items with item details to spare another request
2022-03-19 18:31:45 +01:00
eikek
ae845dfe3b Fix previously published db migration 2022-03-19 14:20:25 +01:00
eikek
232baf5858 Add routes to link items 2022-03-16 23:56:59 +01:00
eikek
8d5fc7f9da Move scheduler queries into the new module 2022-03-16 23:56:59 +01:00
eikek
4c220879db Reformat code 2022-03-13 15:20:34 +01:00
eikek
3a05dc56cb Refactor scheduler into api / impl 2022-03-13 15:20:33 +01:00
eikek
69765f05ff Move user task to scheduler module 2022-03-13 15:20:33 +01:00
eikek
83d3644b39 Move job queue to scheduler-api and fix notification of periodic tasks 2022-03-13 15:20:33 +01:00
eikek
0739957fd7 Fix package name 2022-03-13 15:20:33 +01:00
eikek
c1ce0769eb Check file integrity 2022-03-12 12:58:34 +01:00
eikek
422c0905dc Add task to copy files 2022-03-12 12:58:28 +01:00
eikek
c812ea1009 Store files in different binary stores 2022-03-12 12:18:58 +01:00
eikek
e6777df5f2 Log flywaydb migrations 2022-03-06 13:43:01 +01:00
eikek
79d58fe320 Sort tags by category and then name
Issue: #1396
2022-02-27 00:55:06 +01:00
eikek
9eb9497675 Fix logging in tests 2022-02-19 23:33:01 +01:00
eikek
8b42708db2 Remove old log stuff 2022-02-19 22:01:49 +01:00
eikek
e483a97de7 Adopt to new loggin api 2022-02-19 21:41:38 +01:00
eikek
55700992c2 Migrate file ids
Issue: #1379
2022-02-15 22:20:12 +01:00
eikek
553b1fa249 Add a file-repository for better organizing files
Docspell now must use a new api for accessing files.

Issue: #1379
2022-02-15 22:20:06 +01:00
eikek
14a413e787 Update channel names when retrieving user tasks
Usertasks hold their arguments in an opaque json structure that is not
connected to the other data at the db level. When loading tasks that
holds references (like channels) they could have changed in the
meantime. This is now a hacky way around that updates the channels
when loading. Should they be deleted, the tasks fails when running.
2022-01-30 17:09:52 +01:00
eikek
23cb34a6ff Manage notification channels separately and migrate
It's more convenient to manage notification channels separately, as it
is done with email settings. Notification hook and other forms are
adopted to only select channels. Hooks can now use more than one
channel.
2022-01-19 21:57:30 +01:00
eikek
d41490dd88 Add a name to notification channels
This name is supposed to be used by users to distinguish multiple channels.
2022-01-17 18:10:59 +01:00
eikek
8a4471343c Fix personal/non-personal when updating bookmarks 2022-01-16 00:31:59 +01:00
eikek
42fb87a432 Remove pubsub entries when shutting down and initialize by uri 2022-01-12 21:18:38 +01:00
eikek
7aebc1ccdf Add priority to gotify channel
Closes: #1277
2022-01-12 20:59:24 +01:00
eikek
404fb2a37f Allow a custom message part for the periodic query task 2022-01-11 22:50:19 +01:00
eikek
42d631876d Remove obsolete code 2022-01-11 21:09:38 +01:00
eikek
cf92550de4 Fix mariadb migration 2022-01-10 15:28:02 +01:00
eikek
699cf091e6 Allow bookmarks in periodic query notification 2022-01-10 14:25:20 +01:00
eikek
ccb4df5bd7 Prevent duplicate bookmark names 2022-01-10 00:41:07 +01:00
eikek
54a4e6efee Fix formatting 2022-01-09 23:58:57 +01:00
eikek
9415f72ec0 Instead of client only, make bookmarks a server aware feature
Makes it much more useful
2022-01-09 23:58:57 +01:00
eikek
706cfaeb05 Introduce table to store client settings per collective 2022-01-08 12:38:14 +01:00
eikek
1a86fcca78 Enable tests again
They were disabled due to network problems
2021-12-21 19:50:40 +01:00
eikek
1ff2af6779 Disable tests due to networking problems 2021-12-21 00:36:43 +01:00
eikek
0b606e6b05 Use logfmt for log lines and remove ansi color codes 2021-12-19 22:29:56 +01:00
eikek
c21b2cdd29 Update scalafmt to 3.0.8 2021-12-11 22:46:55 +01:00
eikek
4ffc8d1f14 Add support for more generic notification
This is a start to have different kinds of notifications. It is
possible to be notified via e-mail, matrix or gotify. It also extends
the current "periodic query" for due items by allowing notification
over different channels. A "generic periodic query" variant is added
as well.
2021-12-11 18:57:32 +01:00
eikek
b79ac5fbad Add missing db migrations for h2 and mariadb 2021-11-20 15:24:23 +01:00
eikek
501c6f2988 Updating stanford corenlp to 4.3.2; adding more languages
There are models for Spanish, that have been added now. Also the
Hungarian language has been added to the list of supported
languages (for tesseract mainly, no nlp models)
2021-11-20 14:31:39 +01:00
eikek
20fc9955ba Fix reprocessing to lookup the last used language 2021-11-20 01:34:16 +01:00
eikek
fcb25637d3 Improve new job count bubble 2021-11-13 20:39:40 +01:00
eikek
7a8527f821 Indicate number of running jobs in tob nav
Issue: #1069
2021-11-12 22:01:30 +01:00
eikek
cf933b60a7 Encode ws messages as JSON 2021-11-11 23:54:37 +01:00
eikek
7b8afe8371 Make internal endpoints available to nodes only 2021-11-08 00:13:02 +01:00
eikek
f38d520a1d Hooking the new pubsub impl into the application 2021-11-06 01:44:06 +01:00
eikek
d483d9f176 Initial naive pubsub impl generalising from current setup 2021-11-05 01:05:24 +01:00
eikek
6696aba481 Show user shares when asking to delete user 2021-10-24 01:41:18 +02:00
eikek
2ac0b84e52 Link shares to the user, not the collective
The user is required when searching because of folders (sadly), so the
share is connected to the user.
2021-10-24 01:41:18 +02:00
eikek
9eb2f9c6fe Implement binary routes for shares 2021-10-23 14:33:24 +02:00
eikek
813797756c Extend search stats to fully populate search menu
Refs: #856
2021-10-23 14:33:24 +02:00
eikek
e961a5ac10 Use search stats to populate search menu 2021-10-23 14:33:24 +02:00
eikek
f4596db63d Authorize share access 2021-10-23 14:33:24 +02:00
eikek
4ef9d6c3ff Add expired flag to share details 2021-10-23 14:33:24 +02:00
eikek
c7d587bea4 Basic management of shares 2021-10-23 14:33:24 +02:00
eikek
de1baf725f Generate a query string given an expression
Initialize share record and improve tests.
2021-10-23 14:33:24 +02:00
eikek
aa8f3b82fc Use passwords when reading PDFs 2021-09-30 11:48:59 +02:00
eikek
f74624485f Allow to manage passwords for a collective 2021-09-30 10:35:38 +02:00
eikek
071f4067bf Use existing mimetype detection when storing files 2021-09-23 14:10:24 +02:00
eikek
1761526e20 Simplify MimeType class and parse mimetypes in a more lenient way 2021-09-23 14:10:24 +02:00
eikek
9013f2de5b Update scalafmt settings 2021-09-22 17:23:24 +02:00
eikek
20a829cf7a Refactoring for migrating to binny library 2021-09-22 14:18:43 +02:00
eikek
9785db0683 Change license header of all files 2021-09-21 22:35:38 +02:00
eikek
506e9a0c36 Move sent mails when merging items
Fixes: 1055
2021-09-08 22:29:34 +02:00
eikek
736968b049 Fix adding a new user and don't allow to add non-local users
The user structure must provide the correct account source now.
2021-09-08 20:57:10 +02:00
eikek
8df235e9db Delete the user along its data 2021-09-08 20:57:10 +02:00
eikek
3650a7d20c Make sure DML statements use the correct logger
It also seems to be necessary now to add the space in the `WHERE`.
Normally, the `fr` interpolator would add spaces….
2021-09-08 20:56:18 +02:00
eikek
7edb96a297 Register external accounts
This creates the account if it doesn't exist yet; otherwise it's a
noop. Only valid for non-local accounts.
2021-09-05 21:38:14 +02:00
eikek
aef56233a5 Add a new column to distinguish local from external users 2021-09-05 21:38:14 +02:00
eikek
3a5ef62715 Add missing sql changesets 2021-09-01 00:57:03 +02:00
eikek
1afc005a6c Adopt login process for two-factor auth 2021-08-31 21:29:07 +02:00
eikek
309a52393a Initial impl for totp 2021-08-31 16:45:39 +02:00
eikek
733096f979 Improve querying item results
The join to retrieve the attachment count per item turned out to be
very expensive. And it is not used anymore for the result, only to
support fulltext search. It is now removed from the query. The
DISTINCT keyword is also removed, because it is not necessary and it
is expensive. With the DISTINCT removed, a new index (provided in the
previous commit) can now be used to avoid sorting items.
2021-08-29 11:09:06 +02:00
eikek
a5a8c2553b Add indexes to better support certain queries 2021-08-29 00:38:12 +02:00
mergify[bot]
3520a2ec26
Merge pull request #1037 from eikek/small-list-improvements
Allow to specify ordering when retrieving meta data
2021-08-27 21:18:47 +00:00
eikek
cf88f5c2de Allow to specify ordering when retrieving meta data
The query now searches in more fields. For example, when getting a
list of tags, the query is applied to the tag name *and* category.
When listing persons, the query now also looks in the associated
organization name.

This has been used to make some headers in the meta data tables
clickable to sort the list accordingly.

Refs: #965, #538
2021-08-27 23:04:54 +02:00
eikek
7b2fb70c04 Add missing data to insert statement
Closes: #1032
2021-08-27 22:51:34 +02:00
eikek
6bb6cad39d Test db migrations for all supported databases 2021-08-23 23:41:03 +02:00
eikek
993a391c13 Add the attachment-only option to a source
The upload request can now contain a boolean for importing only
attachments when e-mails are uploaded. This option is now also added
to a source url.

Refs: #983
2021-08-23 14:19:11 +02:00
eikek
d5022f883e Enhance search mode to search in all items 2021-08-21 15:45:14 +02:00
eikek
90421599ea Fix storing empty-trash task
It was wrongly stored using RPeriodicTask directly, but the higher
level `UserTask` must be used instead, because this ensures a
correctly scoped periodic task using the `updateOneTask` method. Since
this is a system task, it can be given a fixed ID which makes it now
safe even if stored using RPeriodicTask directly.

The bug resulted in multiple empty-trash tasks to be inserted (on each
restart).

Refs: #347
2021-08-20 00:25:25 +02:00
Scala Steward
e4fecefaea
Reformat with scalafmt 3.0.0 2021-08-19 08:50:30 +02:00
eikek
c7c488f0cc Fix position of merged attachments 2021-08-16 15:05:26 +02:00
eikek
a923351b09 Fix item merge when merging tags and text fields
Also hard delete the remaining items. They are empty (have no
attachments), because data is moved if possible. Doesn't make much
sense to keep them, because restoring them isn't much useful.
2021-08-16 14:40:52 +02:00
eikek
85085ec173 Implement item merge 2021-08-16 12:32:54 +02:00
eikek
14e4a8f792 Fixup for deleting items
First, when checking for existence of a file, deleted items are not
conisdered.

The working with fulltext search has been changed: deleted items are
removed from fulltext index and are re-added when they are restored.
The fulltext index currently doesn't hold the item state and it would
mean much more work to introduce it into the index (or, worse, to
reprocess the results from the index). Thus, deleted items can only be
searched using database queries. It is probably a very rare use case
when fulltext search should be applied to deleted items. They have
been deleted for a reason and the most likely case is that they are
simply removed.

Refs: #347
2021-08-15 16:00:30 +02:00
eikek
f4a2b86ea8 Use a minimum age of items to remove
In order to keep deleted items for a while, the periodic task can now
use a duration to only remove items with a certain age. This can be
used to ensure that a deleted item stays at least X days before it
will be removed from the database.

Refs: #347
2021-08-15 12:32:50 +02:00
eikek
ef31c90e34 Fix submitter column of a collective-scoped periodic job 2021-08-14 22:07:56 +02:00
eikek
4562c77152 Fix migration changeset name for h2 2021-08-14 22:07:56 +02:00
eikek
31d885ed79 Refactor user tasks to support collective and user scopes
Before, there were periodic tasks run per collective and not user by
making sure that submitter + group are the same value. This is now
encoded in `UserTaskScope` so it is now obvious and errors can be
reduced when using this.
2021-08-14 22:07:56 +02:00
eikek
27fd7a5867 Make sure the empty-trash task is started for all collectives 2021-08-14 20:40:04 +02:00
eikek
50706c3d6d Add a task implementation to delete items 2021-08-14 19:33:18 +02:00
eikek
4901276c66 Change "empty trash" settings for a collective and submit the job 2021-08-14 19:33:15 +02:00
eikek
f999662905 Add routes to restore deleted items 2021-08-14 16:48:03 +02:00
eikek
a7b74bd5ae Allow to search in soft-deleted items
A new query/request parameter can be used to apply a search to only
soft-deleted items.

The query expression `Trashed` has been introduced which selects only
items with state `Deleted`. This is another option an analog to
`ValidItemStates` (both cannot be used together as they would select
no items). This new query node is not added to the parser, because
users may not use it in their own queries - it must be part of the
"fixed" query so the application can control in which subset to search
(it would otherwise be possible to select any items).
2021-08-14 14:53:05 +02:00
eikek
cb777e30c0 Delete items by introducing a deleted state
When deleting items via the http api, they are not deleted anymore but
a new status "Deleted" is set. The collective insights contains now a
count separately for deleted items.
2021-08-14 14:18:03 +02:00
eikek
48d13a35fc Fix search summary to restrict on valid items 2021-08-14 14:09:07 +02:00