mhoeher / opentodolist

A simple Todo and task management application - Mirror of https://gitlab.com/rpdev/opentodolist
https://opentodolist.rpdev.net
GNU General Public License v3.0
172 stars 13 forks source link

Nextcloud Web GUI #24

Open braniz opened 4 years ago

braniz commented 4 years ago

Hallo.

I found the tool after a longer search.

Is it possible that Nextcloud is not only used for synchronization? Is it also possible to use Nextcloud for editing? That would be great.

Branislav Zeljak

mhoeher commented 4 years ago

Hey @braniz,

thanks for raising a request here. Well, in theory, it would be possible to also add an app to NextCloud so you can manage your libraries in NextCloud's web interface. In fact, some years ago the actual plan on integrating the app with NextCloud was to have a custom app and a dedicated sync interface. However, I went for using WebDAV (i.e. the generic file access API NextCloud provides), because that also allows the app to be used with any other WebDAV server.

Back to topic: While I see the benefit of having a NextCloud app for this purpose, I currently don't have the bandwidth to work on one on my own, sorry. I'll keep this issue open, because in the end, OpenTodoList is an open source project and everyone is welcome to join in and improve it - be it my extending the app itself or by contributing a custom NextCloud app. ;-)

Also, as OpenTodoList is built on the great Qt framework, it should not be a big deal to get the app running on a device currently not supported (which, hopefully, shouldn't be too many, as we build and deploy the app for Linux, macOS, Windows, Android and iOS, which should already cover most user's needs).

TheNomad11 commented 4 years ago

Aha, I first thought syncing with Nextcloud means syncing with the Nextcloud Task app (Have been trying to make it work without success). Maybe you should make this clear in the description?

mhoeher commented 4 years ago

Hm... I thought this would be clear from the home page:

OpenTodoList allows you to synchronize your libraries with NextCloud, ownCloud and other WebDAV enabled web storage servers. In addition, as libraries are basically just a set of folders and files, you can use any third party synchronization tool of your choice.

;-)

TheNomad11 commented 4 years ago

Yes, in theory, yes. Clearly too much "wishful thinking" from my side as normal user who easily gets excited about open source projects ;)

mhoeher commented 4 years ago

Well, open source is all about choice, right ;-) If you seek an app which acts basically as a mobile frontend to NextCloud's tasks app, there is e.g. OpenTasks.

OpenTodoList very deliberately uses a different "data model" under the hood and it was an active decision not to sync with NextCloud's CalDav-based apps (calendar, tasks) but just use NextCloud as storage for the exported files the app produces. First, for certain things (like having tasks inside todos) the CalDAV standard simply does not dictate how to do it and consequentially every app does it a bit differently. You see this very well when using "sub-todos" in OpenTasks, which end up as specific lines in the description of the todo itself, whereas the NextCloud tasks app creates nested todos using custom meta attributes put into the CalDAV data. There's a disconnect and no chance to fix this "once and for all". Second, the idea of OpenTodoList is to allow synchronization with other services as well. In fact, besides ownCloud you can also use any WebDAV storage out there. And in theory, it does not end here: The app can be extended to sync with e.g. Google Drive, DropBox, the iCloud, etc... all that is needed is "just" a relatively simple mapper which allows storing files on the particular service.

HackintoshHD commented 3 years ago

I really understand that developing an entire web application for OpenTodoList's data model from scratch would be a too demanding request at this point. But what about the idea of Nextcloud Talk opening OpenTodoList libraries and displaying (only) their todo lists as normal CalDAV calendars containing tasks?

My reasoning: Both Nextcloud Talk and OpenTodoList, even if they may use very different data models, have one common unique feature, and that is multi-level subtasks combined with a sync mechanism which enables people to organize their todo data in their very own infrastructure preserving their right to privacy.

I've literally found no other applications that do that across platforms to the degree of Nextcloud Talk and OpenTodoList:

To cut a long story short, I really think about opening such a feature request in the Nextcloud Tasks repository. - @mhoeher, as OpenTodoList's author, would you be supportive of that?

mhoeher commented 3 years ago

Thanks @HackintoshHD for your comment and digging out that information. It is especially nice to read that NC's tasks app uses RELATED-TO in order to model the sub-todo relationship (in fact, most other apps built on CalDAV don't and instead rely on other ways to handle tasks - e.g. just putting them in the "description" of the todo as inline text, which then badly breaks down when you share a todo list with several people).

I definitely would provide any support that is required if the Tasks app would implement support for OpenTodoList's library format. However, I am not sure if this is in scope for them - not saying you shouldn't try it, though :wink:

Another possibility would however be, the other way round: As mentioned above, I had deliberately decided against using CalDAV as base for OpenTodoList because there is no "standard" (at least not widely and actively used one) to model sub-todos (or tasks as in OpenTodoList jargon). However, according to the issue you linked to, if the Tasks app is consistently using RELATED-TO, then OpenTodoList could be extended to use the CalDAV data from NextCloud as an additional data source. Note that this means quite a bit of effort, as some kind of on-the-fly conversion from CalDAV to OpenTodoList's JSON format would be required. In addition, the CalDAV part has no notion of "libraries", so this, too, is something that would need to be though through carefully. But in the end, its all software and doable (given enough time).

However, and this is also an important point outlined in the linked issue, keep in mind that if any other app syncs against your NextCloud using CalDAV, this app might break the RELATED-TO attribute. So this feature would only work cleanly as long as all participants in the sync behave well.

mhoeher commented 3 years ago

Ah, one thing I forgot to mention: OpenTodoList also - purposefully - only uses a fixed nesting structure. You have:

The Tasks app in turn has unlimited todo/sub-todo nesting. So either way, some thinking on how this exchange of the two apps could be modeled properly would be required.

HackintoshHD commented 3 years ago

Thank you, @mhoeher, I think there's very little to add to that and I feel encouraged. :slightly_smiling_face: :+1: We'd have the problem of the fixed vs. unlimited todo/sub-toto nesting structure, that would need to be adressed, which makes an implementation within the Nextcloud Tasks app maybe preferable. I'll try to open a feature request issue within the Nextcloud Tasks repository in the coming days.

Just one addition as far as data sources are concerned:

Right now, IMAP mail might be an interesting additional data source for notes and very attractive for macOS users, because more and more email providers are (reasonably) enforcing TLS v1.2 as their minimal negotiable transport encryption protocol and Apple has obviously failed to implement TLS v1.2 in their 2018 (!) Mojave Notes App (that's at least my impression from analysing its now failing TLS protocol negotiation with posteo.de's usually well-configured IMAP servers in Wireshark).

Furthermore, all Thunderbird add-ons for editing Apple notes are currently defunct with Thunderbird's new web extension add-on infrastructure introduced by the current Thunderbird 78 series (according to 1, Apple notes are nothing more than email drafts in an IMAP "Notes" folder with two additional x-headers). As a consequence, all notes-based workflows are currently broken for macOS Mojave users (last macOS version to still run 32-bit applications) and I'm not aware of any 3rd-party app that would make IMAP notes accessible again on macOS.

mhoeher commented 3 years ago

Using IMAP for syncing sounds definitely like an interesting idea. However, I have no experience with this protocol and would need to check if there is something which can be used to talk to the server side. So if at all, this would be a longer term target. In addition, I don't know which format Apple Notes are using internally. OpenTodoList uses Markdown everywhere (so all the textual contents are basically plain text with a light markup). But, this probably can be found out. :wink: