Commit Graph

1718 Commits

Author SHA1 Message Date
eikek
650e2c7c47 Set new version to 0.28.0-SNAPSHOT 2021-09-23 19:48:36 +02:00
eikek
80b73be68f Set version to 0.27.0 2021-09-23 17:37:54 +02:00
eikek
d8b272a407 Fix styles for secondary button and dimmer 2021-09-23 17:37:05 +02:00
eikek
40727d205a Refactor occurrences folding streams of strings 2021-09-23 15:26:20 +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
617f931a14 Remove unused code 2021-09-23 09:27:44 +02:00
eikek
e31107eb49 Require a otp to disable 2fa 2021-09-23 09:27:44 +02:00
eikek
bbfc5b56d8 Document TOTP 2021-09-23 09:27:44 +02:00
Renovate Bot
844c453864 Update dependency ansi-regex to 5.0.1 [SECURITY] 2021-09-23 02:43:56 +00:00
Renovate Bot
489ef310f3 Update dependency nth-check to 2.0.1 [SECURITY] 2021-09-23 02:00:09 +00:00
eikek
4362301212 Fix base64 string in default config
While not being used, it is parsed and fails if it's not valid base64.
2021-09-22 19:48:10 +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
860efcf06f Fix more license occurrences 2021-09-22 11:55:56 +02:00
eikek
9785db0683 Change license header of all files 2021-09-21 22:35:38 +02:00
eikek
193b81bf7d Fix version check
Refs: #1068
2021-09-21 22:07:19 +02:00
eikek
16b5655b54 Go back to old version scheme
Refs: #1039
2021-09-13 11:39:57 +02:00
eikek
506e9a0c36 Move sent mails when merging items
Fixes: 1055
2021-09-08 22:29:34 +02:00
eikek
a94aeff75c Add ui for showing data to be deleted for a user 2021-09-08 20:57:10 +02:00
eikek
e89b571ab2 Add a route to show what is deleted 2021-09-08 20:57:10 +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
11de82402e Add cross checks for the server config 2021-09-06 14:47:42 +02:00
eikek
4237caa755 Add some documentation for OIDC 2021-09-06 14:24:52 +02:00
eikek
28fdeb5a93 Fixing http redirect status codes 2021-09-06 11:40:47 +02:00
eikek
468ba90158 Fix OTP authentication for external accounts 2021-09-06 01:07:31 +02:00
eikek
8158e36d40 Improve logging and rename oauth->openid 2021-09-06 00:29:19 +02:00
eikek
984dda9da0 Add OpenID support to webapp 2021-09-05 23:43:07 +02:00
eikek
f8362329a9 Authenticate with external accounts using OIDC
After successful authentication at the provider, an account is
automatically created at docspell and the user is logged in.
2021-09-05 21:39:30 +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
aa099a340e Remove unused code 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
b73c252762 Implement authentication via OpenIdConnect and OAuth2
The new subproject "oidc" handles all the details for working with an
OpenID Connect provider (like keycloak) or only OAuth2 - only
supporting the "Authorization Code Flow" for both variants.
2021-09-05 17:32:15 +02:00
eikek
4e57be6dfd Fix endpoint path in openapi spec 2021-09-02 22:06:33 +02:00
eikek
3a5ef62715 Add missing sql changesets 2021-09-01 00:57:03 +02:00
eikek
9dfe7f30a0 Remove unused contact kind 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
999c39833a Add user setting page for totp 2021-08-31 21:28:17 +02:00
eikek
309a52393a Initial impl for totp 2021-08-31 16:45:39 +02:00
eikek
2b46cc7970 Add a simple module for totps
This is a wrapper around the nice and minimal java-otp library [0].

[0] https://github.com/jchambers/java-otp
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
eikek
9812b8f6c8 Set new version to 21.12-SNAPSHOT 2021-08-28 12:54:44 +02:00
eikek
be510b0363 Set version to 0.26.0 2021-08-28 11:54:08 +02:00
eikek
637f11d0f6 Fix solr setup by adding a text_he field
This field is used for Hebrew language. Solr doesn't support it out of
the box. The new field type is just a very basic field using the
standard tokenizer and lowercase filter. It is very likely not
providing good results. Hebrew is really difficult and it requires at
least installing plugins for solr - this is out of scope for docspell.
Users can setup their solr however they like and run a re-index
afterwards.
2021-08-28 00:10:36 +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
wallace
eab7fe57d2 Fix formatting with scalafmt 2021-08-24 02:24:20 +03:00
wallace
589c41003f Add hebrew document language 2021-08-24 01:19:42 +03: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
mergify[bot]
45f6357f49
Merge pull request #1024 from eikek/enhance-search-mode
Enhance search mode to search in all items
2021-08-21 13:56:43 +00:00
eikek
d5022f883e Enhance search mode to search in all items 2021-08-21 15:45:14 +02:00
eikek
0a0dd80bdc Add new checkbox to scan mailbox form 2021-08-21 13:49:12 +02:00
eikek
751fa3da5a Add attachments-only filter to uploads
When uploading a file which is an e-mail, this option allows to skip
the mail body when the file is being processed.
2021-08-21 13:49:12 +02:00
eikek
5d33b3841a Add a task to check for updates periodically
It must be enabled and configured by the admin.

Refs: #990
2021-08-20 00:25:27 +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
8f23b68587 Add a qr code to the link of an item or attachment 2021-08-18 00:20:27 +02:00
eikek
f1445e797b Highlight search menu tabs that contain data
Refs: #966
2021-08-16 22:13:53 +02:00
eikek
cf10f63af4 Improve main view in home page 2021-08-16 17:00:57 +02:00
eikek
ac0603335f Improve merge items list
Allow to reorder for mobile and remove elements.
2021-08-16 16:00:43 +02:00
eikek
c7c488f0cc Fix position of merged attachments 2021-08-16 15:05:26 +02:00
eikek
21647e950d Add docs for merging items 2021-08-16 14:41:56 +02:00
eikek
9478152a94 Switch to search view after successful merge 2021-08-16 14:40:57 +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
8099b78b0e Merge items in webui 2021-08-16 12:55:25 +02:00
eikek
85085ec173 Implement item merge 2021-08-16 12:32:54 +02:00
eikek
22d331f082 Integrate item merge dialog into home page 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
bc6924fd5d Show delete/restore buttons conditionally
When only trashed items are selected, the "delete" button doesn't make
sense and vice versa.
2021-08-15 12:41:10 +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
548dfb9a57 Fix openapi.yml where undefined query parameter 2021-08-14 20:40:04 +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
828e5cf703 Allow to restore deleted items in webui 2021-08-14 16:50:17 +02:00
eikek
f999662905 Add routes to restore deleted items 2021-08-14 16:48:03 +02:00
eikek
eede20b014 Display deleted items in the webui
The card renders a trash can in the top right corner and the detail
page shows a label and also this trash can.
2021-08-14 16:06:55 +02:00
eikek
3f1ff5c1ac Allow to search in deleted items 2021-08-14 15:35:17 +02:00
eikek
edb344314f Use an enum instead of a boolean to differentiate search
It's not very likely to have more modes of search besides normal and
trashed, but got surprised in that way quite often and it's nicer this
way anyways.
2021-08-14 15:11:48 +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
eikek
08ce6b5256 Fix path to viewerjs for pdf view 2021-08-13 00:58:13 +02:00
Renovate Bot
51c35bd7dd
Update dependency path-parse to 1.0.7 [SECURITY] 2021-08-12 11:22:06 +00:00
eikek
1901fe1a8c Adopt deprecated APIs from fs2; use fs2.Path 2021-08-07 17:51:56 +02:00
monnypython
52d601f595
Update Home.elm 2021-08-05 12:45:33 +02:00
monnypython
86515321a8
Update Color.elm 2021-08-05 12:38:01 +02:00
monnypython
5cf69fef6c
Update AddressForm.elm
Since organizations do not only exist in cities, "Ort" would probably be the more general term.
2021-08-05 12:28:06 +02:00
eikek
1256a6e8cf Allo wildcards when searching by attachment ids 2021-07-31 01:23:37 +02:00
eikek
1c3a1cc0dc Set version to 0.26.0-SNAPSHOT 2021-07-29 23:11:36 +02:00
eikek
fe06cc1e6b Set version to 0.25.1 2021-07-29 22:53:43 +02:00
eikek
c59d4f8a6d Add the japanese content field to solr
This is a follow up on #961. It was forgotten when the japanese
language was added.
2021-07-29 22:22:34 +02:00
eikek
e696c06656 Set version to 0.26.0-SNAPSHOT 2021-07-29 18:10:27 +02:00
eikek
17e49f40c7 Set version to 0.25.0 2021-07-29 17:47:53 +02:00
eikek
4af8dd0950 Preprocess japanese texts to find dates
Not very efficient, but should work to find the position of dates in
japanese text.
2021-07-29 01:35:15 +02:00
wallace
e8348e2809 Remove excessive spaces 2021-07-29 02:08:48 +03:00
wallace11
1095a7d56f
Add another Japanese test 2021-07-29 01:13:22 +03:00
wallace11
119a4ffdc9
Update Japanese tests with more sensible data 2021-07-29 01:08:48 +03:00
eikek
f994d4b248 Add japanese document language 2021-07-28 20:05:48 +02:00
eikek
09b224b07a Left align item separator and make it more prominent
Refs: #950
2021-07-27 18:10:46 +02:00
eikek
15b15666bf Allow to use the created timestamp in item queries
Refs: 925
2021-07-27 17:33:13 +02:00
eikek
9578dd2b2b Add route to remove tags for a single item 2021-07-25 23:27:06 +02:00
eikek
3483dfe32e Fix openapi doc 2021-07-25 22:00:54 +02:00
eikek
fcef52856a Allow tag ids or tag names when replacing tags 2021-07-25 21:26:22 +02:00
eikek
782ca0fa4f Remove a deleted item from search results
When an item is deleted in detail view, the results must be updated to
reflect the new state. The results are now changed by removing the
corresponding item.

Fixes: #920
2021-07-25 17:35:01 +02:00
eikek
21eb7dad94 Change headers of all elm files 2021-07-25 14:00:11 +02:00
eikek
42b37df6a1 Fix header formatting 2021-07-25 13:57:05 +02:00
eikek
a6c0af93e8 Use more space in sidebar
Reduce left and right padding
2021-07-25 13:42:57 +02:00
eikek
912104ce49 Small german corrections
Fixes: #901
2021-07-25 13:40:15 +02:00
eikek
eb977ab3a7 Show the number of selected files on upload page
Fixes: #896
2021-07-25 13:37:06 +02:00
mergify[bot]
1851c5b7af
Merge pull request #944 from scala-steward/update/tika-core-2.0.0
Update tika-core to 2.0.0
2021-07-25 11:18:53 +00:00
Scala Steward
558007235b Update tika-core to 2.0.0
Include new ODF parser from tika-2.0.0
2021-07-25 13:08:18 +02:00
eikek
916217df4f Make convert-all-pdfs an admin endpoint 2021-07-25 01:25:24 +02:00
eikek
bde8af8d58 Merge branch 'current-docs' 2021-07-17 18:02:31 +02:00
eikek
eeebe750f9 Improve some openapi descriptions 2021-07-17 18:01:18 +02:00
eikek
d95a78f495 Allow to set folder by id or name 2021-07-17 15:10:19 +02:00
eikek
1c0d87527b Log error when setting folder doesn't work 2021-07-17 15:10:00 +02:00
eikek
cd304bcff7 Improve doc string for some endpoints 2021-07-17 13:09:20 +02:00
eikek
1913877de1 The id must be recreated for each job, obviously
Fixes: #938
2021-07-16 21:14:47 +02:00
eikek
280968355e Improve doc string for some endpoints 2021-07-14 22:32:17 +02:00
eikek
f7eed33545 Return a 404 if a source was not found when checking a file 2021-07-08 21:17:48 +02:00
eikek
1120434cd9 Replace generating preview images with an admin endpoint
It doesn't make much sense to have this per collective, because this
is triggered by an admin after changing the server config file. So it
is now implemented as an admin endpoint that affects all files.
2021-07-04 21:37:34 +02:00
eikek
8e5c88fd32 Add copyright header to source files 2021-07-04 10:57:53 +02:00
monnypython
4299fcedd8
Update German translations
Fixes some typos and replaces "Absenden" with "Speichern" that seems a better fit when saving data (submitting a form) in German.
2021-07-01 22:45:12 +02:00
monnypython
d6f3d7dd6e
Fix typo in German translation 2021-07-01 00:24:43 +02:00
Lucki
159472b37e
Enhance german translation (#899) 2021-06-29 17:34:47 +02:00
eikek
ce6f53cc29 Fix next-job query to do round-robin through job groups 2021-06-27 00:04:56 +02:00
eikek
988367a281 Extend query builder to compare results from subselects 2021-06-26 21:12:02 +02:00
eikek
7dcb61ef56 Use old ip checks and fix dev-ui-build script
These checks could be improved to not use javas InetAddress. But for
now it should have the same behaviour as before.
2021-06-26 14:43:16 +02:00
Lucki
0bdfcd531d
Improve German translation 2021-06-24 23:10:57 +02:00
eikek
9e552d2ac1 Move webapp related build files into the webapp directory 2021-06-22 23:47:15 +02:00
eikek
02b8078f01 Use fs2 Files api 2021-06-22 23:17:32 +02:00
eikek
bd791b4593 Upgrade code base to CE3 2021-06-22 22:53:34 +02:00
eikek
528ee6ecdc Set version to 0.25.0-SNAPSHOT 2021-06-18 23:53:50 +02:00
eikek
068281f9a7 Set version to 0.24.0 2021-06-18 22:39:04 +02:00
eikek
4a9ab2c1be Only update category options if the query selected all tags
The tag category is a bit special (sadly). The options are retrieved
by going through the tags. It must not update these, if a query
selects only a subset of tags.
2021-06-16 00:14:35 +02:00
eikek
31c4e14e76
Merge pull request #870 from monnypython/master
Some small corrections and ideas for the German translation
2021-06-15 01:20:23 +02:00
monnypython
77cb25bbc4
Update ClassifierSettingsForm.elm 2021-06-14 23:15:03 +02:00
monnypython
22045dcead
Update AttachmentMeta.elm 2021-06-14 23:13:34 +02:00
eikek
e021f06946 Update language dropdown for new data
When receiving a new value to display in the form, the language
dropdown was not initialized with the corresponding value.
2021-06-14 21:02:36 +02:00
monnypython
0cc06898fe
Update ScanMailboxForm.elm 2021-06-14 13:32:19 +02:00
monnypython
2f3f5e483e
Update EquipmentManage.elm 2021-06-14 08:05:35 +02:00
monnypython
653ffd9ba5
Update SourceManage.elm 2021-06-13 21:14:55 +02:00
monnypython
36c0fb9ea4
Update UiSettingsForm.elm 2021-06-13 21:12:54 +02:00
monnypython
d93f08a63a
Update SourceManage.elm 2021-06-13 00:36:39 +02:00
monnypython
78fa0920a7
Update SourceForm.elm
Line 72: Not sure but i think it sounds a bit better :)
Line 77: What is a glob?
2021-06-13 00:31:19 +02:00
monnypython
77760da156
Update SearchMenu.elm 2021-06-13 00:24:55 +02:00
monnypython
3a0fb82489
Update ScanMailboxForm.elm
A long attempt to simplify or shorten nested sentences without affecting the information content:

Line 179: As normal user i don't know what a "Glob" is.
Line 190: "...die hier definiert wird..." --> I think that's redundant. Where else? Or not?
Line 196:  ...löschen (falls *kein* Zielordner angegeben ist). --> would actually be enough or?
2021-06-13 00:22:13 +02:00
monnypython
3cdbd8c033
Update OrgTable.elm
Is "Typ" better than "Art" or maybe "Verwenden als...."?
2021-06-12 23:44:28 +02:00
eikek
8791326d6a Fix openapi linter warnings 2021-06-12 21:50:51 +02:00
monnypython
bae27b644b
Update HttpError.elm 2021-06-11 00:20:58 +02:00
monnypython
87f3542a80
Update FolderDetail.elm 2021-06-11 00:19:05 +02:00
monnypython
fe42fb212e
Update EquipmentManage.elm 2021-06-11 00:16:40 +02:00
monnypython
e69ef578a7
Update EquipmentForm.elm 2021-06-11 00:15:15 +02:00
monnypython
fc3da2c197
Update DetailEdit.elm 2021-06-11 00:11:41 +02:00
monnypython
16cbe09fa7
Update CustomFieldInput.elm 2021-06-11 00:06:58 +02:00
monnypython
a204cddef8
Update CustomFieldForm.elm 2021-06-11 00:05:26 +02:00
monnypython
b8d7b643a1
Update CollectiveSettingsForm.elm 2021-06-11 00:02:33 +02:00
monnypython
60b6ad9663
Update ClassifierSettingsForm.elm
Line 66,67: I think that's a little clearer straight away.
2021-06-10 23:58:29 +02:00
monnypython
32ffa43745
Update CalEventInput.elm
Is "Anstehend" better than "Nächste Zeiten"?
2021-06-10 23:52:34 +02:00
monnypython
f252c9cfcb
Update AttachmentMeta.elm
I think in German one speaks more of "Absender", "Empfänger" and "Unternehmen". Is "Ausstattung" better than "Zubehör"? I think the due date implies the date in German usage. The date could therefore be left out.
Since the equipment is only available from the recipient, in my opinion the recipient could be left out. The position in the sidebar must of course always be arranged under recipient.
2021-06-10 23:49:17 +02:00
eikek
7ec0668f03 Use a single place to create values for bool custom fields 2021-06-10 01:30:53 +02:00
eikek
29cfa035f4 Add boolean custom field immediately with value false
The time the user selects this field it should be pushed to the
server, because the initial value of "false" is a correct value. All
other fields require the user to type something first.
2021-06-10 01:30:53 +02:00
eikek
bf74e3aa23 Don't toggle dropdown on space
Closing the dropdown menu is now possible with ESC. Space will only
open the dropdown, but not close it. So now it's possible to type a
space into the search field.

Fixes: #863
2021-06-09 22:18:18 +02:00
eikek
481d31ee74 Hide content search field when fulltext is not enabled 2021-06-07 21:30:41 +02:00
eikek
ac7d00c28f Refactor re-index task 2021-06-07 21:17:29 +02:00
eikek
3ee0846e19 Remove fts_migration table
It is now stored it SOLR instead.
2021-06-07 17:53:47 +02:00
eikek
5205ee0623 Store solr migration state in a solr document 2021-06-07 17:53:37 +02:00
eikek
206e7842ca Improve label for suggestions when there are none 2021-06-07 10:11:41 +02:00
eikek
6d8bd530cb Fix translation for direction 2021-06-07 10:11:41 +02:00
eikek
d6bff7b2e6 Add German translation for ManageData page 2021-06-07 10:11:41 +02:00
eikek
b6242f8354 Add German translation for UserSettings page 2021-06-07 10:11:41 +02:00
eikek
61f36f69b8 Add German translation for Queue page 2021-06-07 10:11:41 +02:00
eikek
de90b81863 Add German translation for Detail page 2021-06-07 10:11:36 +02:00
eikek
9f07b61a34 Add German translation for Upload page 2021-06-06 22:09:35 +02:00
eikek
32e08e1caa Add German translation for NewInvite page 2021-06-06 22:09:35 +02:00
eikek
6927ca5ec3 Add German translation for Login/Register page 2021-06-06 14:10:56 +02:00
eikek
78938c9980 Add German translation for home page 2021-06-06 13:59:50 +02:00
eikek
fe4f48dd7f Add German translation for collective settings page 2021-06-06 01:05:43 +02:00
eikek
c2170d2daf Fix tag category search being case insensitive 2021-06-03 21:44:55 +02:00
eikek
bdc7822f50 Add documentation about docker setup 2021-05-31 22:19:49 +02:00
Eike Kettner
1fe7b05026 Set next version to 0.24.0-SNAPSHOT 2021-05-29 16:17:45 +02:00
Eike Kettner
4f03705d88 Set version to 0.23.0 2021-05-29 14:46:28 +02:00
Eike Kettner
a90a24c419 Revert "Fix update with current ui settings"
This reverts commit e137b23674.

This change is completely useless. The wrong behaviour was probably
due to some browser cache.
2021-05-29 14:45:36 +02:00
Eike Kettner
e137b23674 Fix update with current ui settings 2021-05-29 00:41:46 +02:00
Eike Kettner
e406718cb7 Add a way to migrate settings stored at the browser to the server 2021-05-27 21:34:05 +02:00
Eike Kettner
5a4f6c0595 Fix tag category color field
The category name was not rendered
2021-05-27 21:34:05 +02:00
Eike Kettner
c0ba211fe7 Externalize string in ui settings form 2021-05-27 21:34:05 +02:00
Eike Kettner
9ccc3ce438 Store and load client settings 2021-05-27 21:34:05 +02:00
Eike Kettner
9f76357879 Add api functions for getting/setting client settings 2021-05-27 21:34:05 +02:00
Eike Kettner
414ffba453 Remove unused code 2021-05-27 21:34:05 +02:00
Eike Kettner
25788a0b23 Add routes for storing/retrieving client settings 2021-05-27 21:34:05 +02:00
Eike Kettner
08f280ac1c Fix wrong macro name when running name query
Closes: #822
2021-05-23 14:14:25 +02:00
Eike Kettner
a1a93e5ca6 Fixes searching items with fulltext
When using fulltext only search, then only the index must be searched.
This wasn't working anymore, because the routes added a query to
always select valid items (those not being processed). But this lead
to the downstream code to always consult the database, too. Since the
routes are using a "simple-search" interface, this is now adding the
valid-state condition if applicable. There are still more low-level
interfaces that can be used when searching should be done differently.

Closes: #823
2021-05-23 14:14:25 +02:00
Eike Kettner
d7bbbd2f96 Remove upload meta form for anonymous uploads
Closes: #758
2021-05-22 21:33:10 +02:00
Eike Kettner
b3c73dafc0 Only show user menu when successfully logged in
Closes: #814
2021-05-22 20:30:05 +02:00
Eike Kettner
f91939ff5b Use a configured placeholde instead of hardcoded string 2021-05-22 20:29:30 +02:00
Eike Kettner
283e80bc47 Add a now missing case to handle parse failures 2021-05-16 22:49:20 +02:00
Eike Kettner
e3053549b3 Extract strings in item detail modals 2021-04-26 22:02:45 +02:00
Eike Kettner
a98211af22 Remove Http.errorToString 2021-04-26 20:06:36 +02:00
Eike Kettner
a39dfbf82a Refactor caleventinput field 2021-04-26 20:06:30 +02:00
Eike Kettner
b2cffb22ef Externalize error messages 2021-04-26 10:00:01 +02:00
Eike Kettner
c9b54e80b7 Remove code from old ui 2021-04-26 10:00:01 +02:00
Eike Kettner
b3c3c783dc Externalize more strings 2021-04-26 10:00:01 +02:00
Stefan Scheidewig
5faf0e5a0e Made viewMode pattern matches exhaustive 2021-04-18 22:31:17 +02:00
Stefan Scheidewig
dd743cf273 Reformatted changed source files with elm-format 2021-04-18 22:27:50 +02:00
Stefan Scheidewig
decae84aec Using SelectViewModel, bulk deletion of item attachments 2021-04-18 18:38:38 +02:00
Stefan Scheidewig
1db5eaf5ee Attachments selectable 2021-04-17 16:43:24 +02:00
Stefan Scheidewig
a9c02e9e88 Prepared multiselect view mode for attachment list 2021-04-17 13:04:30 +02:00
Stefan Scheidewig
558197e415 Fixed the imports 2021-04-15 20:49:34 +02:00
Stefan Scheidewig
6149a2ab89 Restored unused imports to make it compile again 2021-04-15 18:34:54 +02:00
Stefan Scheidewig
fa34312020 Implemented endpoint to delete multiple attachments 2021-04-15 18:05:01 +02:00
Stefan Scheidewig
93f772351a Made multi id read logic sharable 2021-04-15 18:03:58 +02:00
Stefan Scheidewig
037d8e818d Added a route definition to bulk-delete attachments 2021-04-15 17:59:39 +02:00
Eike Kettner
9d6e26efb4 Use externalized strings for edit label 2021-04-14 00:11:10 +02:00
Eike Kettner
994e3df597 Fix query for getting tag categoy summary 2021-04-12 13:40:22 +02:00
Eike Kettner
5737eba82d Prepare translating dates 2021-04-12 10:53:34 +02:00
Eike Kettner
cb522ee6eb Set version to 0.23.0-SNAPSHOT 2021-04-11 23:36:16 +02:00
Eike Kettner
1492800be0 Set version to 0.22.0 2021-04-11 22:33:39 +02:00
Eike Kettner
f91f4340b8 Fix scanmailbox form layout 2021-04-11 20:38:09 +02:00
Eike Kettner
7b1cbe6435 Use a placeholder string for all dropdowns 2021-04-11 20:37:16 +02:00
Eike Kettner
255fe82005 Hide the language menu in login page when there are no options 2021-04-11 16:55:32 +02:00
Eike Kettner
c2599eda4c Remove un-done translations for German 2021-04-11 16:05:11 +02:00
Eike Kettner
39ed246a42 Use correct category count in search menu 2021-04-11 14:34:44 +02:00
Eike Kettner
3e0914ece7 Correctly count tag categories
If multiple tags of the same category are applied to the same item,
just summing tag counts will produce the wrong results as now items
are counted multiple times.
2021-04-11 14:34:44 +02:00
eikek
1f60417189
Merge branch 'master' into query-fix 2021-04-11 12:59:00 +02:00
Eike Kettner
4041018c47 Reduce not expressions
Fixes queries containing macros inside a "not".
2021-04-11 12:57:42 +02:00
Eike Kettner
5f001b59e5 Show cancelled jobs in queue page 2021-04-11 01:01:32 +02:00
Eike Kettner
c07fd1e61d Make long filenames break within the container 2021-04-10 23:26:28 +02:00
Eike Kettner
e1bbc2edf5 Apply autoformat 2021-04-10 16:31:58 +02:00
Eike Kettner
e630786104 Move ui language into messages 2021-04-10 16:13:49 +02:00
Eike Kettner
92ae22a68d Externalize more strings missed before 2021-04-10 16:02:34 +02:00
Eike Kettner
7c43fa0874 Reorganize messages to reflect page structure 2021-04-10 00:30:42 +02:00
Eike Kettner
fa2c5750dd Externalize strings in other of components 2021-04-09 23:10:00 +02:00
Eike Kettner
2f678aca17 Externalize strings in detail page 2021-04-09 22:40:03 +02:00
Eike Kettner
1762e7afac Externalize strings for home page 2021-04-05 21:31:45 +02:00
Eike Kettner
9c1beb2240 Externalize strings in usersettings page 2021-04-04 22:07:37 +02:00
Eike Kettner
594818499e Externalize strings in manage-data page 2021-04-04 22:07:37 +02:00
Eike Kettner
8f1380fcf5 Externalize strings in UiSettings page 2021-04-04 22:07:37 +02:00
Eike Kettner
e76d574ea3 Externalize strings for document language 2021-04-02 23:30:51 +02:00
Eike Kettner
dac95e81e6 Remove unused code for search dropdown 2021-04-02 23:16:38 +02:00
Eike Kettner
9a23ba9afb Refactor FixedDropdown 2021-04-02 23:11:54 +02:00
Eike Kettner
8d15d97857 Refactor Dropdown 2021-04-02 22:20:55 +02:00
Eike Kettner
b9c98c6578 Externalize strings in queue page 2021-04-02 11:28:21 +02:00
Eike Kettner
968c8e02b7 Externalize strings in upload page 2021-04-02 11:28:21 +02:00
Eike Kettner
12cad398ac Externalize strings in new-invite page 2021-04-02 11:28:21 +02:00
Eike Kettner
db6198673b Externalize strings in register page 2021-04-02 11:28:21 +02:00
Eike Kettner
ec237a2eaa Externalized strings 2021-04-02 11:28:21 +02:00
Eike Kettner
2b81c72d96 Provide translations for main menu 2021-04-02 11:28:21 +02:00
Eike Kettner
322a3e837c Prepare for selecting languages
UI language is stored in user settings for authenticated users;
otherwise is only stored in the current model (not persisted).
2021-04-02 11:28:21 +02:00
Eike Kettner
9fcab84267 Add icon to fixed dropdown 2021-04-02 11:28:21 +02:00
Eike Kettner
589e136883 Add flag icons 2021-04-02 11:28:21 +02:00
Scala Steward
144ea852bf Update fs2-core, fs2-io to 2.5.4 2021-03-31 21:10:42 +02:00
Eike Kettner
c36073b852 Allow to give human readable summary to user tasks 2021-03-27 22:13:13 +01:00
Eike Kettner
63331b6399 Remove unused code 2021-03-27 22:13:13 +01:00
Eike Kettner
ff0b70abfe Fix scrollbar position 2021-03-27 22:13:13 +01:00
Eike Kettner
03459124ca Don't return items still in processing 2021-03-27 22:13:13 +01:00
Eike Kettner
cc38b850a6 Remove deprecated search routes and some refactoring 2021-03-27 22:13:13 +01:00
Eike Kettner
7d513dce0b Set version to 0.22.0-SNAPSHOT 2021-03-13 18:09:29 +01:00
Eike Kettner
39d6f5789a Set version to 0.21.0 2021-03-13 16:57:33 +01:00
Eike Kettner
8c6ad8fc4e This test only doesn't work on my ci 2021-03-13 16:57:08 +01:00
Eike Kettner
177488817d Fix h2 migration
Using java source code obviously requires `javac` during migration.
2021-03-13 16:38:48 +01:00
Eike Kettner
2e443bc9b9 Fix mariadb migration 2021-03-13 15:52:38 +01:00
Eike Kettner
eb56c605cb Add scrollbars 2021-03-13 14:11:37 +01:00
Eike Kettner
df6b6aba2c Fix reading uri from a string
The read routine did not report all errors in the return type but some
raised exceptions.
2021-03-12 22:31:19 +01:00
Eike Kettner
f8bd42e5bd Redo pdf conversion and text extraction on reprocess
When processing a new file conversion and text extraction is skipped
if detected to be already done. This prevents running expensive tasks
again after restarting/retrying. When explicitely reprocessing a file,
these tasks should run again and replace the existing results.
2021-03-12 00:45:28 +01:00
Eike Kettner
a7ee0aa08b Add a flag to processing task to distinguish re-/processing 2021-03-12 00:45:23 +01:00
Eike Kettner
76f5ab6c68 Allow to reprocess single and multiple items in the ui 2021-03-12 00:16:19 +01:00
Eike Kettner
058c31e1f6 Reprocessing now sets metadata to an item if not in state confirmed
When reprocessing an item, the metadat of all *files* are replaced.
This change now also sets some metadat to an item, but only if the
item is not in state "confirmed". Confirmed items are not touched, but
the metadata of the files is updated.
2021-03-12 00:16:19 +01:00
Eike Kettner
ebaa31898e Add missing solr migration for new language field 2021-03-12 00:16:00 +01:00
Eike Kettner
274e433d9d Allow to change use enum for org/equipment 2021-03-10 23:55:18 +01:00
Eike Kettner
0229a867af Add a use colum to metadata entities 2021-03-10 23:55:18 +01:00
Eike Kettner
1a188afbd7 Re-add ui-version to keep browser resource cache in service-worker 2021-03-10 23:16:01 +01:00
Eike Kettner
a4a84abae5 Show errors from failed register request
Also include a `@` in the valid chars for "idents". This allows to use
an e-mail address as username.
2021-03-10 22:14:55 +01:00
Eike Kettner
6a63694a3e Convert unit tests to munit 2021-03-10 19:48:56 +01:00
Eike Kettner
64e3cb04f3 Remove fomantic ui and ui-header handling 2021-03-09 22:45:29 +01:00
Eike Kettner
b95338e744 Remove old ui code in frontend 2021-03-09 20:40:49 +01:00
Eike Kettner
9991ad5fcc Add latvian language 2021-03-09 00:23:17 +01:00
Eike Kettner
77a87782b7 Refactoring parser
- put all used strings in one place to have it easier to track
- don't use `$` for shortcuts, it's a detail not interesting to a
  user; now names must not clash (which is a good idea anyways)
- Added two more shortcuts `conc` and `corr`
2021-03-08 22:51:14 +01:00
Eike Kettner
e681ffa96f Extend query builder allowing more conditions
Before only a column or a dbfunction could be used in a condition. It
is now allowed for all `SelectExpr`.
2021-03-08 22:51:08 +01:00
Eike Kettner
b514b85f39 Improve parser error messages a bit 2021-03-08 10:26:39 +01:00
Eike Kettner
30c901ddf1 Add more ways to query for attachments
- find items with a specified attachment count
- find items by attachment id
2021-03-08 09:49:38 +01:00
Eike Kettner
2b2f913e85 Add checksum query expr 2021-03-08 01:53:21 +01:00
Eike Kettner
7b1ec97c97 Fix sort when using fulltext only 2021-03-08 00:47:15 +01:00
Eike Kettner
c6032ff279 Check query in client 2021-03-08 00:46:31 +01:00
Eike Kettner
31e2e99c36 Add a $year shortcut for selecting items within some year 2021-03-07 13:34:35 +01:00
Eike Kettner
7638dc5111 Flatten nested and/or queries 2021-03-07 12:36:51 +01:00
Eike Kettner
63d146c2de Resolve fulltext search queries the same way as before
For now, fulltext search is only possible when being the only term or
inside the root AND expression.
2021-03-07 09:40:47 +01:00
Eike Kettner
1c834cbb77 Correctly compare numeric field values 2021-03-03 22:54:55 +01:00
Eike Kettner
d4006461f6 Serving scalajs artifacts and provide errors to js 2021-03-03 00:45:10 +01:00
Eike Kettner
71985244f1 Use a better representation for macros 2021-03-03 00:44:49 +01:00
Eike Kettner
a48504debb Specificly search for field id vs name 2021-03-02 21:09:31 +01:00
Eike Kettner
b4b5acde13 Enable power search for power users via ui settings
A different search bar is presented if enabled in ui settings that
allows to search via the new query language.
2021-03-01 22:45:17 +01:00
Eike Kettner
168f5a1a98 Fix like search for custom fields 2021-03-01 20:56:23 +01:00
Eike Kettner
489581d90b Fix parsing nested expressions
Since whitespace is used as a separator, it cannot be consumed by
and/or parens.
2021-03-01 20:56:23 +01:00
Eike Kettner
889e4f4fb0 SearchMenu uses query string instead of json form 2021-03-01 20:56:23 +01:00
Eike Kettner
f8307f77c6 Search by field id or name 2021-03-01 20:56:23 +01:00
Eike Kettner
18992ee374 Deprecate search endpoints 2021-03-01 15:31:02 +01:00
Eike Kettner
dadab0d308 Implement search by query in endpoints 2021-03-01 15:31:02 +01:00
Eike Kettner
698ff58aa3 Provide a more convenient interface to search 2021-03-01 11:50:07 +01:00
Eike Kettner
e079ec1987 Provide custom error structure for parse failures 2021-03-01 00:51:01 +01:00
Eike Kettner
d737da768e Move to munit in query module 2021-03-01 00:51:01 +01:00
Eike Kettner
9013d9264e Add more convenient date parsers and some basic macros 2021-03-01 00:51:01 +01:00
Eike Kettner
af73b59ec2 Parser improvements
- default expressions into a and node
- fix parsing string lists that end in whitespace
- fix package names of internal classes
2021-03-01 00:51:01 +01:00
Eike Kettner
a80d73d5d2 Optimize imports 2021-03-01 00:51:01 +01:00
Eike Kettner
e9ed998e3a Basic poc to search via custom query 2021-03-01 00:51:01 +01:00
Eike Kettner
186014a1c6 Refactor search to separate between a base query and user query
The `findBase` is adding only strictly required conditions. Everything
else comes from the user.
2021-03-01 00:51:01 +01:00
Eike Kettner
c3cdec416c Sketching some basic tests 2021-03-01 00:50:52 +01:00
Eike Kettner
be5c7ffb88 First draft of ast and parser 2021-03-01 00:46:57 +01:00
Eike Kettner
74a79a79d9 Initial project setup 2021-03-01 00:46:57 +01:00
Eike Kettner
cfa36a5270 Fix preview png tests
Outcome was checked manually.
2021-03-01 00:33:57 +01:00
Eike Kettner
e6d9ce2c37 Remove obsolete type capabilities
These are now detected by the new scala compiler and lead to compile
errors.
2021-03-01 00:16:30 +01:00
Eike Kettner
c7d4c77e6d Allow more suggestions for date variants in English 2021-02-26 00:35:17 +01:00
Yumekui
017241bccb
Fix typo 2021-02-22 15:09:10 +00:00
Eike Kettner
cd2f623773 Set version to 0.21.0-SNAPSHOT 2021-02-19 23:32:10 +01:00
Eike Kettner
4d3a25a8c1 Set version to 0.20.0 2021-02-19 22:36:55 +01:00
Eike Kettner
07a061febc Make sure certain styles are not stripped by purge-css 2021-02-19 22:36:55 +01:00
Eike Kettner
211499a7e6 Add bottom border to metadata view 2021-02-19 11:17:35 +01:00
Eike Kettner
d819878974 Re-add the button to create new tags in detail view 2021-02-19 11:07:42 +01:00
mergify[bot]
9156e56d65
Merge pull request #651 from eikek/language-source
Add language to a source
2021-02-19 01:30:24 +00:00
Eike Kettner
7ef3185659 Add language to a source
Allows to define upload urls for different languages.
2021-02-18 23:34:42 +01:00
Eike Kettner
5c6f57cc6a Trim values of some input data
Some values don't make sense when padded with whitespace, like
organization name, source ids etc. These are trimmed now when
received.
2021-02-18 22:07:32 +01:00
Eike Kettner
70fa57587b Fix setting ui theme for anonymous 2021-02-18 22:02:56 +01:00
Eike Kettner
0e9d8f8794 Fix hover when folder is a drop-target 2021-02-18 00:43:15 +01:00
Eike Kettner
d7bc963450 Cleanup nodes that are not reachable anymore 2021-02-18 00:37:18 +01:00
mergify[bot]
b16166f1e9
Merge pull request #645 from eikek/equipment-description
Equipment description
2021-02-17 22:17:03 +00:00
Eike Kettner
5181283b1b Add a short-name to organizations 2021-02-17 22:55:35 +01:00
Eike Kettner
20ccdda609 Add a notes field to equipments 2021-02-17 22:39:07 +01:00
Eike Kettner
e07d732193 Show item position in detail view 2021-02-17 22:18:22 +01:00
Eike Kettner
a79fa6f74a Add version info back to frontend 2021-02-17 21:54:53 +01:00
Eike Kettner
e177336155 Better align tags in multi-select field 2021-02-17 00:14:06 +01:00
Eike Kettner
4ef1996137 Fix extracted content border 2021-02-17 00:14:06 +01:00
Eike Kettner
33cfd6df6f Hide Load-more button when there is no more 2021-02-17 00:14:06 +01:00
Eike Kettner
29d80adace Ui updates: place result message below buttons 2021-02-17 00:14:06 +01:00
Eike Kettner
48eee00c0b Allow person to be correspondent, concerning or both 2021-02-16 22:49:55 +01:00
Eike Kettner
d99ce76d89 Remove person suggestion if it doesn't match with organization 2021-02-16 00:29:54 +01:00
Eike Kettner
eb308cfa85 Remove duplicate candidates when creating list of suggestions 2021-02-15 23:56:09 +01:00
Eike Kettner
64bacb665a Show queue counts in side menu 2021-02-15 00:27:55 +01:00
Eike Kettner
07edaaaf5e Try fix attachment selection for firefox
It works great in chromium, in firefox the border is a bit off.
2021-02-15 00:11:37 +01:00
Eike Kettner
9c90d7c4c2 Fix min height of tag area in detail
This avoids "nervous/noisy" ui flickering when changing between items
where one has no tags/fields to show.
2021-02-15 00:10:38 +01:00
Eike Kettner
a10971607e Always show custom field dropdown in detail mode
Even if there are no custom fields define, the control is shown now.
The user can create a new one in this view.
2021-02-14 23:34:18 +01:00
Eike Kettner
dec6148df6 Hide field stats component if there is nothing to show 2021-02-14 23:29:05 +01:00
Eike Kettner
31cb8284a5 Fix formatting icon in top nav bar 2021-02-14 23:22:37 +01:00
Eike Kettner
1dcc3941ed Fix overflowing content in item cards
When displaying long lines this leads to horizontal scrolling the
complete item list.
2021-02-14 23:18:18 +01:00
Eike Kettner
f29353adb3 Use different worker cache name per ui
Avoid to have users clear their browser caches
2021-02-14 11:29:36 +01:00
Eike Kettner
5461321e59 Remove unused styles and prevent postcss from purging relevant ones 2021-02-14 02:20:01 +01:00
Eike Kettner
f6e5bda2d8 Change default ui to be the new ui
The old ui is still available, using a header: `Docspell-Ui: 1`. Using
a browser addon a "ui switch" can be easily achieved.
2021-02-14 01:46:13 +01:00
Eike Kettner
dd935454c9 First version of new ui based on tailwind
This drops fomantic-ui as css toolkit and introduces tailwindcss. With
tailwind there are no predefined components, but it's very easy to
create those. So customizing the look&feel is much simpler, most of
the time no additional css is needed.

This requires a complete rewrite of the markup + styles. Luckily all
logic can be kept as is. The now old ui is not removed, it is still
available by using a request header `Docspell-Ui` with a value of `1`
for the old ui and `2` for the new ui.

Another addition is "dev mode", where docspell serves assets with a
no-cache header, to disable browser caching. This makes developing a
lot easier.
2021-02-14 01:46:13 +01:00
Eike Kettner
442b76c5af Setup tailwind with docspell build 2021-02-03 21:35:15 +01:00
Eike Kettner
62f596be35 Set version to 0.20.0-SNAPSHOT 2021-01-25 10:19:00 +01:00
Eike Kettner
73b54addc5 Set version to 0.19.0 2021-01-25 09:21:16 +01:00
Eike Kettner
394aeeccb6 Introduce a sql literal and constants in query builder
The h2 jdbc driver could not translate the union query in QCollective
when the `kind` was set via a constant value. Using literals works
here. Renamed the corresponding elements in the query builder.
2021-01-25 00:18:24 +01:00
mergify[bot]
6cc9c159d6
Merge pull request #590 from eikek/scan-mailbox-filter
Refactor scan mailbox form and add flag for post-processing
2021-01-24 01:06:51 +00:00
Eike Kettner
96612e0e59 Refactor scan mailbox form and add flag for post-processing
Mails are filtered once by using an imap search and then by some globs
to filter files and subjects. Imap can search by subject via a
string-contains, but not via globs or patterns (afaik). The subject
filter is applied to all downloaded mail headers. Now for post
processing (moving to some target folder or deleting), it can be
chosen to post-process all "seen" mails or only those that matched all
filters.
2021-01-24 01:46:31 +01:00
Eike Kettner
1b66e2af5c Fix classifier_settings table 2021-01-23 21:30:26 +01:00
Eike Kettner
c7e850116f Make the text length limit optional 2021-01-22 23:06:50 +01:00
mergify[bot]
8dd1672c8c
Merge pull request #583 from eikek/fix-baseurl-setting
Render baseurl without trailing slash
2021-01-21 23:44:14 +00:00
mergify[bot]
38e0a50942
Merge pull request #582 from eikek/delete-org-fix
Fix deleting organization
2021-01-21 22:56:56 +00:00
Eike Kettner
0ec620fcf0 Render baseurl without trailing slash
The webapp expects it like this currently, because the url is only a
string.
2021-01-21 21:42:08 +01:00
Eike Kettner
f4a03e7c69 Fix deleting organization
The foreign key in person must be resetted.
2021-01-21 21:27:02 +01:00
Eike Kettner
4cba96f390 Always return classifier results as suggestion
The classifier results are spliced into the suggestion list at second
place. When linking they are only used if nlp didn't find anything.
2021-01-21 21:05:28 +01:00
Eike Kettner
9957c3267e Add constraints from config to classifier training
For large and/or many documents, training the classifier can lead to
OOM errors. Some limits have been set by default.
2021-01-21 17:46:39 +01:00
Eike Kettner
363cf5aef0 Quote names in sql changesets 2021-01-21 00:22:58 +01:00
Eike Kettner
38387e00a0 Fix mariadb migration 2021-01-21 00:22:53 +01:00
Eike Kettner
a6c31be22f Update documentation 2021-01-20 22:47:15 +01:00
Eike Kettner
85ddc61d9d Move date proposal setting to nlp config 2021-01-20 19:17:29 +01:00
Eike Kettner
5d366c3bd6 Make labels in classifier settings more clear 2021-01-20 01:05:59 +01:00
Eike Kettner
b12d965223 Improve logging 2021-01-20 00:40:58 +01:00
Eike Kettner
27c24c128d Store tags guessed with classifier in database 2021-01-20 00:30:40 +01:00
Eike Kettner
9d83cb7fe4 Store item based proposals in separate table
Classifier don't work on each attachment, but on all. So the results
must not be stored at an attachment. This reverts some previous
changes to put the classifier results for item entities into its own
table.
2021-01-19 23:48:09 +01:00
Eike Kettner
3ff9284a64 Return classifier results as suggestions 2021-01-19 23:13:51 +01:00
Eike Kettner
75573c905e Use classifier results as fallback when linking proposed metadata 2021-01-19 23:13:34 +01:00
Eike Kettner
8455d1badf Lookup results from classifier
The model may be out of date, data may change. Then it should be
looked up to fetch the id to be compatible with next stages.
2021-01-19 22:56:01 +01:00
Eike Kettner
1cd3441462 Run classifier for item entities (concerned, correspondent)
Store the results separately from nlp results in attachment metadata.
2021-01-19 22:08:29 +01:00
Eike Kettner
d124f0c1a9 Rename db changeset
It's not just a fix, but adds new things
2021-01-19 22:08:29 +01:00
Eike Kettner
5c487ef7a9 Refactor running classifier in text analysis 2021-01-19 21:30:02 +01:00
Eike Kettner
99dcaae66b Learn classifiers for item entities
Learns classifiers for concerned and correspondent entities. This can
be used as an alternative to or after nlp.
2021-01-19 20:54:47 +01:00
Eike Kettner
a6f29153c4 Control what tag categories to use for auto-tagging 2021-01-19 01:20:13 +01:00
Eike Kettner
cce8878898 Exclude tags w/o category from classifying; remove obsolete models 2021-01-18 21:51:49 +01:00
Eike Kettner
3e28ce1254 Add the sql concat function to query builder 2021-01-18 21:51:45 +01:00
Eike Kettner
249f9e6e2a Extend guessing tags to all tag categories 2021-01-18 21:51:45 +01:00
Eike Kettner
3f75af0807 Add 9 more lanugages to the list of document lanugages 2021-01-18 17:41:40 +01:00
Eike Kettner
94bb18c152 Refactor solr language fields 2021-01-18 17:41:40 +01:00
Eike Kettner
26dff18ae0 Add spanish as an example
Adding a new language without nlp requires now only to fill out the
pieces:

- define a list of month names to support date recognition
- add it to joex' dockerfile to be available for tesseract
- update the solr migration/field definitions
- update the elm file so it shows up on the client
2021-01-18 17:41:40 +01:00
Eike Kettner
360cad3304 Refactoring solr/fts migration
When re-indexing everything, skip intermediate populating the index
and do this as the very last step.

Parameterize adding new fields by their language.
2021-01-18 17:41:40 +01:00
Eike Kettner
ff121d462c Disable memory intensive tests on travis 2021-01-18 17:41:40 +01:00
Eike Kettner
f01646aeb5 Reorganize nlp pipeline and add nlp-unsupported language italian
Improves and reorganizes how nlp pipelines are setup. Now users can
choose from many options, depending on their hardware and usage
scenario.

This is the base to use more languages without depending on what
stanford-nlp supports. Support then is involves to text extraction and
simple regex-ner processing.
2021-01-18 17:41:40 +01:00
Eike Kettner
a70e9ab614 Store used language for processing on attachmentmeta
Issue: #570
2021-01-17 22:56:33 +01:00
Eike Kettner
6cf3f9be5a Fix joex version endpoint in spec 2021-01-17 22:56:33 +01:00
Eike Kettner
aa937797be Choose nlp mode in config file 2021-01-17 22:56:33 +01:00
Eike Kettner
54a09861c4 Use model cache with basic annotator 2021-01-17 22:56:33 +01:00
Eike Kettner
a77f67d73a Make pipeline cache generic to be used with BasicCRFAnnotator 2021-01-17 22:56:33 +01:00
Eike Kettner
4462ebae0f Resurrect the basic ner classifier 2021-01-17 22:56:33 +01:00
Eike Kettner
a699e87304 Separate ner from classification 2021-01-17 22:56:33 +01:00
Eike Kettner
f02f15e5bd Move blocker into constructor of text analyser 2021-01-17 22:56:33 +01:00
Eike Kettner
b2b8ad625a scalafmt 2021-01-17 20:11:58 +01:00
Eike Kettner
f0f0e6e0d4 Search for categories case-insensitive
The string was already lowercased, but the comparison was not.

Fixes #568
2021-01-17 20:10:24 +01:00
Eike Kettner
623a61dbb6 Introduce a lowerEq operator to the query builder 2021-01-17 20:10:00 +01:00
Eike Kettner
54bd75e99e Set version to 0.19.0-SNAPSHOT 2021-01-11 23:27:47 +01:00
Eike Kettner
0d1b55a205 Set version to 0.18.0 2021-01-11 22:39:40 +01:00
Eike Kettner
d77b5855e4 Set default pool-size to 1 2021-01-11 22:30:59 +01:00
Eike Kettner
38ae7a9027 Make source a quick link on card and detail 2021-01-11 21:37:36 +01:00
Eike Kettner
33458766fe Correcty reset search menu when clicking on custom-field quick link 2021-01-11 14:03:23 +01:00
Eike Kettner
7beda302b2 Fix and improve tag search menu
Show also "empty tags", where the count is 0. Before only tags with a
count > 0 were displayed. When searching this is fine, but when using
drag&drop to attach tags to items, it is good to see all. They can be
hidden via a button.

The tags are now ordered by their count descending, but regarding to
the overall count – not the current view. Otherwise the tags are
reordered when clicking on them, which is confusing. Also it then
shows the "more important" (most used) tags first, even when the
result is a subset.

A fix was made related to updating the menu. When coming back from
the detail view where a tag with prior count=0 was associated, the
menu didn't show it, because it relied on a previous state, where this
tag were not included.
2021-01-11 13:01:38 +01:00
Eike Kettner
3fccc3df39 Return all tags in search stats result
Before only tags with a count > 0 were included. Now those that have
not attached to any item are returned as well.
2021-01-11 12:13:13 +01:00
Eike Kettner
75986c461f Fix ner date label boundary reporting 2021-01-10 09:10:39 +01:00
Eike Kettner
fb05e997ab Provide multiple date suggestions for English
Issue: #561
2021-01-10 09:02:26 +01:00
Eike Kettner
bddafa7d28 Fix looping over already seen mails when they are skipped
When skipping mails due to a filter, it must still enter the
post-handling step. Otherwise it will be seen again on next run.

Issue: #551
2021-01-09 15:07:18 +01:00
Eike Kettner
d712f8303d Make glob matching case-insensitive by default 2021-01-09 13:23:15 +01:00
Eike Kettner
cbca4d234f Fix scrolling to card
That was broken due to the independent scroll in commit #bcb1b8.
2021-01-09 02:00:01 +01:00
Eike Kettner
cef1c38cc4 Restrict height of job output 2021-01-09 01:49:55 +01:00
Eike Kettner
0abd7dea10 Fix scrolling to top in detail view 2021-01-09 01:16:59 +01:00
Eike Kettner
c0d7aba5d5 Improve selecting attachments of an item
Use a list of small thumbnails instead of just names.

Closes: #396
2021-01-09 01:16:59 +01:00
Eike Kettner
9bc2084499 Allow to click on custom fields in detail view
Closes: #514
2021-01-09 01:16:59 +01:00
Eike Kettner
48d182667d Harmonize login and register page 2021-01-09 01:16:59 +01:00
Eike Kettner
752c8f9be2 Show new-invite as normal page 2021-01-09 01:16:59 +01:00
Eike Kettner
bcb1b87fc0 Enable independent scrolling of search menu and list
Fixes some other minor css issues.

Closes: #541
2021-01-09 01:16:59 +01:00
Eike Kettner
3c12e3678f Allow to search for * in custom date fields
This requires to pass the raw input through to the caller.

Closes: #550
2021-01-09 01:16:59 +01:00
Bo Jeanes
14dacaa837
Fix typo 2021-01-09 10:41:53 +11:00
Eike Kettner
716252721c Fix cache clearing
It must be cancelled when obtaining a pipeline.
2021-01-07 23:31:01 +01:00
Eike Kettner
a670bbb6c2 Make idle interval when clearing nlp cache configurable 2021-01-06 23:03:00 +01:00
Eike Kettner
73a9572835 Poc for clearing stanford pipeline after some idle time 2021-01-05 23:56:20 +01:00
Eike Kettner
b08e88cd69 Add (inofficial) routes to get system information 2021-01-05 20:54:53 +01:00
Eike Kettner
30df887934 Sort custom field options in dropdown 2021-01-05 18:04:54 +01:00
Eike Kettner
668abf2140 Add a reset-password admin route 2021-01-04 20:59:31 +01:00
Eike Kettner
2a172ce720 Remove fulltext recreate-key config value
It's now in the admin routes, protected by the
`admin-endpoint.secret`.
2021-01-04 15:18:02 +01:00
Eike Kettner
306f064ad9 Create a place for admin routes
And move re-creation of fulltext index in this place.
2021-01-04 15:18:02 +01:00
Eike Kettner
0cfd8974d3 Add a flag to imap settings to enable/disable oauth2 scheme 2021-01-04 11:03:04 +01:00
mergify[bot]
84d160aa38
Merge pull request #534 from eikek/duplicate-check
Fixing find-by-checksum with exclusions
2021-01-03 11:55:28 +00:00
Eike Kettner
95fd386c14 Fixing find-by-checksum with exclusions
The NOT-IN query must check for null separately, as everything with
null evaluates to false in sql resulting in not finding existing
duplicates.
2021-01-03 12:29:03 +01:00
Eike Kettner
40b093ae72 Fix selecting imap connection in scan mailbox settings
Issue: #524
2021-01-03 10:31:36 +01:00
Eike Kettner
611e480eb4 Use more prominent log line to indicate start of processing
Issue: #530
2021-01-02 21:47:54 +01:00
Eike Kettner
97dfcece97 Fix duplicate check on restarts
Issue: #530
2021-01-02 21:18:05 +01:00
Eike Kettner
2b8ef3c2f7 Allow to hide search stats in user settings 2021-01-02 10:20:18 +01:00
Eike Kettner
ae57881f2d Sort custom fields in views 2021-01-02 10:09:05 +01:00
Eike Kettner
70983f115c Fix custom field summary table for mobile view 2021-01-02 09:55:12 +01:00
Eike Kettner
a9ed0364d2 Fix linking guessed tags
Since tag names are lower-cased the search must happen lower-cased, too.
2021-01-02 01:30:31 +01:00
Eike Kettner
36858da624 Fix search condition for empty items set 2020-12-17 23:07:04 +01:00
Eike Kettner
4ec133b0b9 Remove unused imports 2020-12-17 23:06:58 +01:00
Eike Kettner
69f57d1eb1 Replace empty hrefs with a href # 2020-12-17 21:15:33 +01:00
Eike Kettner
c9d4e8ec46 Fix selecting items in multi-edit mode
For some to me unknown reason, changing the dom slightly (removing
hidden elements), resulted in a different event dispatching. The cards
while being attached to an event would reload the page as if the event
is propagated. This happned by commit #8d7b3c7d in Home/View.elm.
Adding the hidden nodes back into the dom, "fixed" it.

This change now gives a better fix in assuring that every anchor has
either a sensible `href` or an event and a `href #`.
2020-12-17 21:02:23 +01:00
Eike Kettner
6346bf6a34 Add summary for fulltext searches 2020-12-17 00:11:33 +01:00
Eike Kettner
8d7b3c7d74 Show custom field summary above results 2020-12-16 22:06:34 +01:00
Eike Kettner
b66738b4c3 Add folder count to search menu 2020-12-16 19:20:30 +01:00
Eike Kettner
8fba637ebe Add folder counts to search summary 2020-12-16 01:14:27 +01:00
Eike Kettner
a995ea8729 Update tag counts in search menu 2020-12-16 00:56:12 +01:00
Eike Kettner
80e23d1c84 Add a route to get search summary 2020-12-15 23:37:02 +01:00
Eike Kettner
77627534bc Improve on basic search summary 2020-12-15 23:37:02 +01:00
Eike Kettner
f3855628d5 Extend query builder with more functions 2020-12-15 23:34:12 +01:00
Eike Kettner
4ca6dfccae Get basic search summary 2020-12-15 23:10:13 +01:00
Eike Kettner
56d6d2e2ac Allow changing more parts of a select 2020-12-15 22:12:44 +01:00
Eike Kettner
f1c4b4adb0 Extract find-item query condition 2020-12-15 21:03:47 +01:00
Eike Kettner
2dff686fa0 Introduce unit condition 2020-12-15 21:03:47 +01:00
Eike Kettner
80406cabc2 Refactoring some code into separate files 2020-12-15 21:03:47 +01:00
Eike Kettner
278b1c22c9 Remove old code 2020-12-15 21:03:46 +01:00
Eike Kettner
2cecd01837 Convert rest of QItem 2020-12-15 21:03:46 +01:00
Eike Kettner
d1606d6f16 Remove old commented code 2020-12-15 21:03:46 +01:00
Eike Kettner
266fec9eb5 Convert find items query 2020-12-15 21:03:46 +01:00
Eike Kettner
5e2c5d2a50 Extends query builder 2020-12-15 21:03:46 +01:00
Eike Kettner
35c62049f5 Start converting QItem 2020-12-15 21:03:46 +01:00
Eike Kettner
a355767fdb Convert all query libs besides QItem 2020-12-15 21:03:46 +01:00
Eike Kettner
fd6d09587d Convert more records 2020-12-15 21:03:46 +01:00
Eike Kettner
613696539f Minor refactorings 2020-12-15 21:03:46 +01:00
Eike Kettner
d6f28d3eca Convert folder 2020-12-15 21:03:46 +01:00
Eike Kettner
87eb8c7f55 Convert more records 2020-12-15 21:03:46 +01:00
Eike Kettner
e3f6892abd Convert job record 2020-12-15 21:03:46 +01:00
Eike Kettner
1aa1f4367e Convert periodic tasks 2020-12-15 21:03:46 +01:00
Eike Kettner
3cef932ccd Convert more records 2020-12-15 21:03:46 +01:00
Eike Kettner
fe4815c737 Convert RSentMail 2020-12-15 21:03:46 +01:00
Eike Kettner
5cbf0d5602 Convert more records 2020-12-15 21:03:46 +01:00
Eike Kettner
10b49fccf8 Converting user and userimap records 2020-12-15 21:03:46 +01:00
Eike Kettner
c5c7f7ed3b Convert equipment record 2020-12-15 21:03:46 +01:00
Eike Kettner
adee496b77 Convert source record 2020-12-15 21:03:46 +01:00
Eike Kettner
2dbb1db2fd Initial outline for a simple query builder 2020-12-15 21:03:46 +01:00
Eike Kettner
b338f18e98 Remove redundant fileCount from search result 2020-12-15 21:03:46 +01:00
Eike Kettner
21cd778c37 Merge branch 'fix-0.17' into master 2020-12-15 20:45:39 +01:00
Eike Kettner
14428c0ead Set version to 0.17.1 2020-12-15 20:25:59 +01:00
Eike Kettner
a987ede7c9 Avoid server roundtrip when switching pages
When changing pages in webui a server request should not happen. This
makes the webapp snappy again.

Issue: #508
2020-12-15 20:22:12 +01:00
Eike Kettner
ae0a543101 Set next version to 0.18.0-SNAPSHOT 2020-12-14 14:57:40 +01:00
Eike Kettner
398f969207 Set version to 0.17.0 2020-12-14 14:34:27 +01:00
Eike Kettner
27d087b14c Fix foreign key constraints 2020-12-14 14:34:22 +01:00
Eike Kettner
7e42426edc Fix page routing with remember me 2020-12-11 01:16:57 +01:00
Eike Kettner
c00714ab61 Don't redirect to login for open pages 2020-12-08 21:12:09 +01:00
Eike Kettner
f55566388a Fix endless reload of login page 2020-12-06 00:58:15 +01:00
Eike Kettner
66bd4f53cb Fix person-org relation info 2020-12-05 22:44:19 +01:00
Eike Kettner
2aed7ba142 Simplify search bar and search menu
The functionality of the search bar is now in the search menu, too.
The search menu shows one input field for "textual search", which is
either the fulltext search (if enabled) or a basic search in various
names.
2020-12-05 22:38:27 +01:00
Eike Kettner
5882405f30 Search index if search object only contains this field 2020-12-05 02:59:57 +01:00
Eike Kettner
0b6f965fcb Fix rememberme for missing local storage 2020-12-04 22:57:21 +01:00
Eike Kettner
0337391b20 Change remember period to 30 days 2020-12-04 20:30:25 +01:00
Eike Kettner
f5ae389eea Cleanup remember-me tokens periodically 2020-12-04 17:59:25 +01:00
Eike Kettner
a0642905db Use remember-me cookie if present 2020-12-04 17:59:25 +01:00
Eike Kettner
c10c1fad72 Prepare remember-me authentication variant 2020-12-04 17:59:25 +01:00
Eike Kettner
290989f67f Reorder correspondent person suggestion based on org relationship 2020-12-01 23:39:45 +01:00
Eike Kettner
d4470ab5fd Restrict person dropdown options to the associated organization 2020-12-01 23:39:45 +01:00
Eike Kettner
a6dd71af9f Set an organization to a person in webapp 2020-12-01 23:39:45 +01:00
Eike Kettner
2e28c8e57b Harmonize table views 2020-12-01 23:39:45 +01:00
Eike Kettner
fc2668feee Allow to connect a person to an organization 2020-12-01 23:39:45 +01:00
Eike Kettner
346d23928d Allow to search in source names in webui 2020-11-30 14:26:10 +01:00
Eike Kettner
0ee8ff66d5 Allow to search by source name 2020-11-30 14:07:45 +01:00
Eike Kettner
bdc49aae98 Let user change template for card title and subtitle 2020-11-29 23:36:25 +01:00
Eike Kettner
81a136d915 Use a template for rendering title and subtitle of the item card
Introduces `ItemTemplate` to conveniently create strings given an
item.
2020-11-29 23:36:20 +01:00
Eike Kettner
45e4035e07 Set version to 0.17.0-SNAPSHOT 2020-11-28 18:13:50 +01:00
Eike Kettner
4682bf4a0e Set version to 0.16.0 2020-11-28 17:55:40 +01:00
mergify[bot]
7ee69f7a57
Merge pull request #481 from eikek/reload-fix
Reload fix
2020-11-28 01:23:26 +00:00
Eike Kettner
75055ba34b Fix help link menu item 2020-11-28 01:48:58 +01:00
Eike Kettner
7052bc6b8e Add cc and bcc to item mail 2020-11-28 01:36:59 +01:00
Eike Kettner
d62c4a5a72 Fix updating search view
For example, when content-search was activated the view was not
correctly updated after deleting or drag-and-drop.
2020-11-28 00:51:16 +01:00
Tammo van Lessen
e9347176bd
Fixes an off-by-one classic to also accept dates in January 2020-11-28 00:43:35 +01:00
Eike Kettner
32c9113bd4 Remove unused code 2020-11-28 00:00:10 +01:00
Eike Kettner
1091a4fbdc Show concerning/correspond person exclusively in dropdowns
Now a person that is not marked as "concerning only" is treated as
"correspondent only". The options of all dropdown fields are now
restricted to those subsets.

Issue: #332
2020-11-27 23:13:37 +01:00
Eike Kettner
3fabe0a582 Update to Scala 2.13.4 2020-11-27 20:26:24 +01:00
Eike Kettner
7cc290135a Show currently logged in user
Closes: #329
2020-11-26 23:53:55 +01:00
Eike Kettner
c87163052b Allow to choose from existing tag categories
Also fixes a ui problem with a too long dropdown menu in the small
modal popup when adding tags or custom fields in item detail view.

Issue: #331
2020-11-26 23:53:50 +01:00
Eike Kettner
0919eec3c2 Improve field query and fix mariadb's pickiness with parens
If no query is given, don't search with `like '%'`. MariaDB doesn't
want parens around columns in the GROUP BY clause.
2020-11-25 21:08:49 +01:00
Eike Kettner
52c6659f9f Add missing schema migrations for custom fields 2020-11-25 21:08:49 +01:00
Eike Kettner
41b26fbbd6 Don't hide field dropdown when no fields are defined 2020-11-24 23:38:22 +01:00
Eike Kettner
a18ac17f0c Search with wildcards for custom fields 2020-11-24 21:44:27 +01:00
Eike Kettner
c389c8fe66 Change field-type into field-format in ui 2020-11-24 21:44:27 +01:00
mergify[bot]
436022ceee
Merge pull request #466 from eikek/wildcard-number-search
Allow to search with wildcard in a number custom field
2020-11-24 00:32:02 +00:00
Eike Kettner
c1c92f0932 Add language to upload page 2020-11-23 21:12:45 +01:00
Eike Kettner
2384af1347 Fix centering dropzone title 2020-11-23 21:12:33 +01:00
Eike Kettner
7fee52f6f2 Add language to scan-mailbox-form 2020-11-23 21:00:19 +01:00
Eike Kettner
5fe532001b Allow to specify document lanugage with the request 2020-11-23 20:49:01 +01:00
Eike Kettner
29a5419072 Allow to search with wildcard in a number custom field 2020-11-23 13:44:49 +01:00
Eike Kettner
1ef035f061 Fix hiding tags/fields when corresponding setting exists 2020-11-23 11:20:59 +01:00
Eike Kettner
9bea0298ad Allow to query custom field values with wildcards 2020-11-23 10:59:13 +01:00
Eike Kettner
473985c80e Filter empty custom field values in webui 2020-11-23 10:47:45 +01:00
Eike Kettner
7712e02d2d Don't allow empty custom field values 2020-11-23 10:38:59 +01:00
Eike Kettner
f8c6d183ed Don't scroll in preview image 2020-11-23 10:30:24 +01:00
Eike Kettner
6d22bac720 Display custom field values on item card 2020-11-23 10:23:37 +01:00
Eike Kettner
7b7f1e4d6d Return custom field values with search results 2020-11-23 10:23:25 +01:00
Eike Kettner
44459aecd0 Fix initialising date fields 2020-11-23 09:43:12 +01:00
Eike Kettner
cdcc8210fe Throttle customfield update requests 2020-11-23 09:27:05 +01:00
Eike Kettner
7026852123 Indicate saving custom field values 2020-11-23 00:16:50 +01:00
Eike Kettner
bcdb2fc0fe Show custom field values in item detail header 2020-11-22 23:14:51 +01:00
Eike Kettner
a2e0c23644 Amend search form for custom fields 2020-11-22 21:41:09 +01:00
Eike Kettner
23b343649c Fix and enhance custom-multi-input field 2020-11-22 21:41:09 +01:00
Eike Kettner
066c856981 Allow to search for custom field values 2020-11-22 21:41:09 +01:00
Eike Kettner
c5ab663091 Allow a comma and a point for money values 2020-11-22 21:41:09 +01:00
Eike Kettner
bb19e02c66 Ui improvements
- don't show custom fields in edit menu if there are none. This
reduces load of ui elements. The first custom field must be created in
manage-data page.

- Add more validation to the money type
2020-11-22 21:41:09 +01:00
Eike Kettner
ff30ed5558 Add custom fields to multi-edit form 2020-11-22 21:41:09 +01:00
Eike Kettner
76647d132f Show custom field values in detail view 2020-11-22 21:41:09 +01:00