All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Support timezones in calendar events #276 @MarcelRobitaille
- Support recurrence exceptions #281 @MarcelRobitaille
- Add configurable "shared with me" output directory #285 @Bungeefan
- Removing url encoding from calendar names #280 @lukasdotcom
- Add logging to when job execution is delayed for drive import #284 @Bungeefan
- Replaced mdi download icon with Material Symbol variant #273 @AndyScherzinger
- Fixed "Sync calendar" checkbox having no effect (#36)
- Drop support for Nextcloud 29
- Drop support for Nextcloud 28
- Drop support for Google Photos #246
- Allow disabling of imports of birthday events in calendar #258 @lukasdotcom
- Use outlined icons in the UI #254 @lukasdotcom
- Support importing other contacts #245
- Support for Google Drawings #244
- Vue 3 and Vite #242
- Added warning if using an IP as a redirect URI (#32)
- Cleaned up setup page
- Fix large office file exports #243
- Improve sanitation of folder and file names #209
- Support for up to Nextcloud 32
- fix(AdminSettings): mention that google site verification may be necessary
- Fix(l10n): Update translations from Transifex
- fix(GooglePhotosAPIService): Allow multiple photos with the same name
- fix: Safer settings
- Drop support for Nextcloud 27
- Drop support for Nextcloud 26
- Add support for Nextcloud 30
- Updated UI components library
- Further improve error messages in browser popup
- Adding prefix, suffix and middle name to contacts
- fix(GoogleDriveAPIService): Make sure target path is not a shared folder
- fix(GoogleCalendarAPIService): Sanitize calendar name
- fix(GoogleDriveAPIService): Don't break if a file causes hiccups
- Fix(l10n): Update translations from Transifex
- Improve error messages in browser popup
- Possible appName fix
- Documentation and related changes
- Add support for Nextcloud 28
- Fix bugs related to synchronization features
- Add ability to unregister background sync and show the current sync status in the UI
- Add a button to unregister all jobs from the admin dashboard
- Fix(l10n): Update translations from Transifex
- fix build
- fix(PersonalSettings): Correctly check result of json_decode
- Drop support for Nextcloud 22
- Drop support for Nextcloud 23
- Drop support for Nextcloud 24
- Drop support for Netxcloud 25
- Drop support for PHP <8.0
- fix plural translation in notifier
- Fix(l10n): π Update translations from Transifex
- import contact groups #124 @zgypa
- import contact notes
- import contact websites
- set last modified date of imported directories
- update npm pkgs, adjust to @nextcloud/vue 7.3.0
- improve and speedup calendar import, update existing events if needed
- speedup drive size calculation
- improve contact import, update existing ones if needed
- import photos/albums with slashes in their name #122 @Gp2mv3
- recover after an import job is brutally stopped with a 1h timeout before everything can start again #35 #115 #116
- preserve exif data when downloading photos (all except geolocation which is stripped by google) #119 @Sid127
- only add file name suffix (google file id) for duplicated names (yes, google allows multiple files with the same name in a directory) #127 @Mezgrman
- don't skip contacts with no names
- admin option to use a popup during the OAuth flow rather than a redirect
- adjust to NC 25 (style, icons, no more svg api etc...)
- implement proper token expiration check
- use node 16, adjust to new eslint config
- improve perso/admin settings style, use NC components etc...
- drive pagination to count files #94 @hjylewis
- remove new lines from file names #94 @hjylewis
- contact photo import, correctly get photo file type so photo is not skipped
- list download failures in
failed-downloads.mdfile #83 @akhil1508
- improve permission management, don't fail on missing permission #83 @akhil1508
- remove private information in logs #83 @akhil1508
- improve photo count #84 @akhil1508
- improve release action and clarify package.json
- urlencode calendar ids and fileItem ids #89 @akhil1508
- multiple files having the same name #83 @akhil1508
- google signin button #78 @Niveshkrishna
- change connection button to comply with Google's branding guidelines #70 @tabp0le
- handle unknown job Exceptions to avoid blocking import process #60 @StaceZ @ancow
- drive/photo import with SSE enabled #71 @Niveshkrishna @arnaudvp
- bump js libs
- get rid of all deprecated stuff
- bump min NC version to 22
- cleanup backend code
- bump js libs
- concurrent import jobs #51 @seanodea
- bump js libs
- app certificate
- optimize drive import
- bump js libs
- bump max NC version
- import nc dialog style
- incorrect exclusions in makefile leading to missing Php libs in release
- import calendar event colors #49 @burnhard93
- bump js libs
- use contact incomplete birthday #45 @PhysicsFabi
- preserve files 'last modified date' and photos 'date taken' #42 @dommtardif @jrial #46 @dommtardif @jrial
- try to deal with locked files issue #43 @kusma @sarunaskas
- configurable output dir for drive and photos import
- bump js libs
- photo in imported contacts #44 @hegocre
- issue with unlimited quota, now properly detected #38 @dommtardif
- address book request was restricted to admins
- option to choose google docs import format (OpenXML or OpenDocument)
- add hint about photo api not providing location data
- bump js libs
- add log when drive file can't be directly downloaded and it's not a 'document'
- be resistant to missing photo file name
- don't crash when drive target file is impossible to create in NC
- get full resolution photos and hq videos #32 @Ruzken
- be more defensive when getting contacts #31 @mike-lloyd03
- be more defensive when checking if a contact already exists #27 @Bergum
- don't close resource that is already closed
- fallback title for private calendar events
- don't display photo percent progress as we don't know the exact photo number
- be more defensive when getting shared files size #29 @jessechahal
- safer resource closing on download error
- typo
- make less requests when getting photo number #29 @jessechahal
- try to make contact photo import safer #29 @jessechahal
- be more defensive when getting photo number #29 @jessechahal
- truncate calendar string values because db field is varchar(255) #29 @jessechahal
- mistake leading to crash when "updated" calendar event prop was found #29 @jessechahal
- optionally import shared photo albums and shared drive files/folders
- import in existing calendar if there is one
- improve personal settings style, don't expose token
- directly download to target file (with resource) instead of using temporary files
- log instead of crash on event import error
- more logs, try not to crash on download problems
- delete photo temp file after having copied it
- delete tmp file after having copied it #24 @oncletom
- set client timeout to 0 to allow big file download #24 @oncletom
- export google docs to files instead of just ignoring them #21 @oncletom
- avoid loading entire downloaded files in memory, use temp file and chunk copy #22 @oncletom
- get rid of slashes in file/folder names #19 @oncletom
- bump all js libs
- timestamp of calendar events #17 @duckunix
- get free space independently from photo service
- import contact photos
- mismatch redirect url, use the one generated by the browser
- calendar import crashing for events with not dates #11 @cairobraga
- improve webpack config
- real time photo/drive import progress #14 @sebvil
- crash when importing calendar with new lines in event description #11 @slayerbrk @cairobraga @JimmyKater @aelethian
- use webpack 5
- split service in 5 ones
- improve request error mamangement
- refactor some loops
- stylelint error
- photos import
- drive import
- cleaner code
- avoid empty migration settings when OAuth config is not set
- avoid crash when refresh_token is not given and be more explicit on this error
- always ask for user consent when authentication to make sure we get the refresh_token #4 @Ludovicis #5 @Ludovicis
- lots of translations
- suggested redirect URI #3 @Ludovicis
- the app