* Split permissions for reading documents from updating collection
* fix: Admins should have collection read permission, tests
* tsc
* Add admin option to permission selector
* Combine publish and create permissions, update -> createDocuments where appropriate
* Plural -> singular
* wip
* Quick version of collection structure loading, will revisit
* Remove documentIds method
* stash
* fixing tests to account for admin creation
* Add self-hosted migration
* fix: Allow groups to have admin permission
* Prefetch collection documents
* fix: Document explorer (move/publish) not working with async documents
* fix: Cannot re-parent document to collection by drag and drop
* fix: Cannot drag to import into collection item without admin permission
* Remove unused isEditor getter
* helper
* Add script to move notification settings
* wip, removal of NotificationSettings
* event name
* iteration
* test
* test
* Remove last of NotificationSettings model
* refactor
* More fixes
* snapshots
* Change emails to class instances for type safety
* test
* docs
* Update migration for self-hosted
* tsc
* refactor: attaching emoji in tree node is unnecessary
* refactor: pass depth and hasChildren as separate props
* refactor: move tree impl into a separate hook
* refactor: separate out as DocumentExplorer for reuse
* fix: separate search and node
* fix: review comments
* fix: tsc
* Store import<->document relationship
* Update 20221112152649-import-document-relationship.js
* Store importId on collection, UI tweaks on import screen
* fix: Allow viewers to upload avatar
* DeleteAttachmentTask
* fix: Previous avatar should be deleted on change, if possible
* fix: Also cleanup team logo on change
* feat: add needed columns for throttling notifs
* feat: update model
* feat: deliver only one notif in a 12 hour window
* fix: address review comments
* prevent retry if notification update fails
* fix type compatibility instead of circumventing it
* add index for emailedAt
* fix: add metadata attr to EmailProps
* chore: decouple metadata from EmailProps
* chore: add test
* chore: revert sending metadata in props
* Improve types
* More types, fix default permission for viewers added to collection
* fix change of default role for CollectionGroup
* Restore policy
* test
* tests
* Add `emails.export_completed` notification to settings menu
Signed-off-by: AKP <tom@tdpain.net>
* Don't send email when export_completed notifications are disabled
Signed-off-by: AKP <tom@tdpain.net>
* Automatically subscribe new users to `export_completed` notifications
Signed-off-by: AKP <tom@tdpain.net>
* Alter secondary text on export page to mention optional notifications
Signed-off-by: AKP <tom@tdpain.net>
* Alter toast text on collection export for optional notifications
Signed-off-by: AKP <tom@tdpain.net>
* Only subscribe new admins to export notifs
Signed-off-by: AKP <tom@tdpain.net>
* Move `export_completed` notification decision into `beforeSend`
Signed-off-by: AKP <tom@tdpain.net>
* Update server/emails/templates/ExportFailureEmail.tsx
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* Update server/emails/templates/ExportSuccessEmail.tsx
Co-authored-by: Tom Moor <tom.moor@gmail.com>
Signed-off-by: AKP <tom@tdpain.net>
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* fix: Long collection description prevents import
fix: Parallelize attachment upload during import
* fix: Improve Notion image import matching
* chore: Bump JSZIP (perf)
* fix: Allow redirect from /doc/<id> to canonical url
* fix: Importing document with only title duplicates title in body
* chore: Async user avatar upload processor
* chore: Async team avatar upload
* Refactor to task for retries
* Docs
Include avatarUrl in task props to prevent race condition
Remove transaction around upload fetch request