1. 08 Nov, 2020 1 commit
  2. 06 Oct, 2020 1 commit
  3. 10 Sep, 2020 1 commit
  4. 30 Aug, 2020 1 commit
  5. 30 May, 2020 1 commit
  6. 21 Apr, 2020 1 commit
    • Igor Poboiko's avatar
      [resources] Add a unified Google Groupware Resource · 52113e2f
      Igor Poboiko authored
      Summary:
      This is an attempt to unify existing Calendar&Tasks and Contacts resources into
      a single Groupware resource. At some point, hopefully, GMail support could be also
      added here (see task {T646} and {T9422}).
      
      Various "subresources" (Calendar, Tasks and Contacts) are implemented as subclasses of `GenericHandler`,
      which is a basic `Akonadi::ResourceBase` interface. The resource decides which `Handler` it should call
      by looking at mimetypes. `Handlers` are `friends` of `GoogleResource`, so they can call its callbacks
      (like `itemsRetrieved()`) as needed. This was done primarily to separate logic of different subresources;
      this might be not the best solution, I'm open to suggestions.
      
      This patch also reworks the settings dialog & relevant code.
      The dialog is now using `.ui` file. The "account picker" is gone, as it's no longer needed;
      instead, a single "Configure..." button is added which invokes the auth process.
      
      It also implements "last sync token" API ({T647}) for calendar incremental updates. Without this API,
      event moving between calendars were not handled properly (i.e. event was not removed from the "source" calendar).
      
      Work to be done:
       # KAccounts integration. Need to be able to `disable` various `subresources` on demand, and determine auth `scopes` based on that.
       # GMail integration. Need to somehow adopt `ImapResourceBase` / `ResourceState` scheme, and merge it with current `Handlers` scheme.
       # Add `Akonadi::Tag` support for Contacts. Tags seem to be more appropriate than having bunch of virtual collections, but this might require some changes inside KAddressBook.
      
      Test Plan:
      Here's a comprehensive list of what was tested and what issues were discovered.
       # Adding event locally
       # Changing event locally
       # Removing event locally
       # Moving events between calendars locally
       # **Adding calendar locally**
         - new calendar is added as a virtual collection, cannot add events there afterwards; probably a KOrganizer issue
         - color of newly added calendar is not known, google just don't return it to us
       # Removing calendar locally
       # Changing calendar locally
      
       # Adding event remotely
       # Changing event remotely
       # Removing event remotely
       # Moving events between calendars remotely
       # Adding calendar remotely
       # Removing calendar remotely
      
       # Adding task&subtask remotely
       # Changing task locally
       # Removing task locally
       # Removing a task with subtasks locally (subtasks go to the upper level)
       # **Adding/removing tasklist locally**
         - wasn't tested, but should work. KOrganizer just don't know how to add a tasklist, it adds a calendar by default (probably it sees no difference between them...)
       # Changing tasklist locally
      
       # Adding task&subtask remotely
       # Changing task remotely
       # Removing task remotely
       # Adding tasklist remotely (it is not subscribed automatically, however, so user have to go to account settings and enable it)
       # Changing tasklist remotely
       # Removing tasklist remotely
      
       # Adding contact (including photo) locally, both inside "My Contacts" and "Other Contacts" groups
       # Moving contact between "My Contacts" and "Other Contacts" groups
       # Chaging contact (including photo) locally
       # Removing contat locally
       # Adding contact to contact group locally
         - {D28432} required, otherwise "Link Item" gets silently ignored
       # **Removing contact from contact group locally**
         - wasn't tested, since I've found to UI to "Unlink Item" :(
      
       # Adding contact (including photo) remotely
       # Changing contact (including photo) remotely
       # Removing contact remotely
       # Adding contact to contact group remotely
       # **Removing contact from contact group remotely**
         - doesn't work: need an easy way to fetch all collections we're linked to (so we know which UnlinkJobs we should start)
      
      Reviewers: dvratil, mlaurent
      
      Reviewed By: dvratil
      
      Subscribers: mlaurent, kde-pim
      
      Tags: #kde_pim
      
      Differential Revision: https://phabricator.kde.org/D28560
      52113e2f
  7. 08 Oct, 2019 1 commit
  8. 19 Aug, 2019 1 commit
  9. 09 Jun, 2019 1 commit
  10. 22 May, 2019 1 commit
  11. 18 May, 2019 1 commit
  12. 03 Oct, 2017 1 commit
  13. 28 Sep, 2017 1 commit
  14. 17 Aug, 2017 2 commits
    • Laurent Montel's avatar
      Make it executable without install it · aa048542
      Laurent Montel authored
      aa048542
    • Daniel Vrátil's avatar
      Make KGAPI and SASL2 a hard dependency of kdepim-runtime · 50099c8a
      Daniel Vrátil authored
      KPimGAPI is now released as part of KDE Applications and follows
      the versioning of KDE Applications (and of KDE PIM, internally)
      so there's no reason for it to be an optional dependency anymore.
      I'm sure most ditributions ship it already anyway in order to
      provide Google Calendar/Contacts support.
      
      SASL2 is needed for the native GMail authentication support. Since
      other KDE PIM libraries already have a hard dependency on SASL2
      (like KIMAP) SASL2 is already present on all installations and so
      we just make sure that all distros now ship with the Gmail XOAuth
      support enabled.
      50099c8a
  15. 20 Jun, 2017 1 commit
    • Daniel Vrátil's avatar
      Introduce Facebook event sync resource · 1fdb1dac
      Daniel Vrátil authored
      The resources creates a set of calendars for events that the user is
      attending, maybe attending, declined, not responded yet and for friends'
      birthdays. Each calendar contains respective Facebook events.
      
      Facebook does not seem to have any form of incremental query API so we
      always fetch all events, which is a bit unfortunate, but I don't see
      how else we could handle this without assuming too much about FB API
      behavior.
      1fdb1dac
  16. 19 Feb, 2017 1 commit
  17. 16 Jan, 2017 2 commits
  18. 21 Dec, 2016 1 commit
  19. 23 Nov, 2016 2 commits
  20. 08 Nov, 2016 1 commit
  21. 28 Jul, 2016 1 commit
  22. 14 Jul, 2016 1 commit
  23. 25 Nov, 2015 1 commit
  24. 22 Nov, 2015 1 commit
    • Daniel Vrátil's avatar
      Fix LibKGAPI minimum version requirement · ecc5bb7a
      Daniel Vrátil authored
      The LibKGAPI version bump should've been to 5.0.40 instead of 5.40.0; the
      next stable release will be 5.1.0, so adjust accordingly.
      
      Sorry Albert for breaking the freeze again :/
      ecc5bb7a
  25. 07 Sep, 2015 1 commit
  26. 22 Aug, 2015 2 commits
  27. 05 Aug, 2015 1 commit
  28. 19 Jul, 2015 1 commit
  29. 21 Apr, 2015 1 commit
  30. 14 Apr, 2015 1 commit
  31. 13 Apr, 2015 1 commit
  32. 12 Apr, 2015 3 commits
  33. 28 Dec, 2014 1 commit
  34. 04 Dec, 2014 1 commit