tasks icon indicating copy to clipboard operation
tasks copied to clipboard

[Feature Request] Add a GUI / App to manage VJOURNAL entries

Open devvv4ever opened this issue 2 years ago • 14 comments

Hey everyone!

A lot of people already synchronize their Tasks from NC to Android with DAVx⁵, which works like a charm. Thanks everyone for your work on this Nextcloud app. It is super useful!

Currently Tasks uses VTODO to sync via CalDAV, and recently we've made it possible to sync via VJOURNAL also. Together with jtx Board (https://jtx.techbee.at – @patrickunterwegs) we've collaborated on a new open source Android app so that users can already sync their journals and notes with DAVx5 and Nextcloud. The tasks part of jtx Board uses VTODO - so this can already be synced nicely.

If you create a new collection from within DAVx5 you can easily enable the storage of VJOURNAL in this collection and people can store their Journals and Notes on their Nextcloud. Thats nice, and can be used to sync between Android devices that run DAVx5 but people have no ability to edit or create syncable Journals and Notes on Nextcloud. And ususally Journals and Notes contain more text than Tasks - so it would be a lot easier to manage that on the big screen ;)

It would be a perfect addition for the Tasks app to have an interface on Nextcloud to manage all their journals, protocols, meeting minutes, and other stuff.

jtx Board implements the almost complete VJOURNAL standard and makes strong use of the related-to fields which makes it possible to cross-link tasks and notes to each-other and to journals. This is super-cool for a lot of use cases. For example you can create a team meeting protocol and add sub-tasks and notes to it.

We have no experience with NC apps (we're all Android developers), but we'd be very happy to assist/help/collaborate with the details on this to further empower the usage of open standards and to bring something new and useful to Nextcloud.

Thanks! Bernhard / DAVx⁵

Release of DAVx5 with VJOURNAL support: https://twitter.com/davx5app/status/1504775846841757701 VJOURNAL RFC: https://icalendar.org/iCalendar-RFC-5545/3-6-3-journal-component.html jtx Board: https://gitlab.com/techbeeat1/jtx/ & https://jtx.techbee.at

devvv4ever avatar Mar 28 '22 16:03 devvv4ever

This may also require some discussion with the Nextcloud Notes team, they've had this mentioned previously but it didn't go far at the time, could be good to reach out to see what can be done?

https://github.com/nextcloud/notes/issues/197

rodneyrod avatar Apr 21 '22 00:04 rodneyrod

I think Nextcloud Notes is not the optimal way to go. They have normal files as backend while a CalDAV server (that handles VTODO and VJOURNAL standardized content) can/must contextually understand requests by the client. A files server basically ignores the content of the file and "simply" transmits it. Nextcloud Tasks already has this more complex CalDAV backend so it is much more interesting to add VJOURNAL support here than in Nextcloud Notes.

devvv4ever avatar May 13 '22 11:05 devvv4ever

I agree that Notes should not be the app which implements it. At the same time I think that introducing it in Tasks would make it a very complex app, while all apps have simple UIs and serve a single purpose each. Maybe the solution could be to create another app ("Nextcloud Journals"?) to manage VJOURNAL but also to communicate with people at nextcloud/calendar to use their backend (related: nextcloud/calendar#1514).

In this way Nextcloud can keep its simplicity, but it would require a team to build this another app...

SamuXzX avatar Aug 04 '22 17:08 SamuXzX

I don't agree it should be Notes to implement it. Journals are date-based and belong in the Calendar.

As already mentioned in OP, JtxBoard is already able to sync VJOURNAL entries with Nextcloud via DAVx5.

The entries are there, saved in a Nextcloud calendar. It's up to the calendar people to simply show events AND journals in the calendar.

unalignedcoder avatar Feb 03 '23 13:02 unalignedcoder

The CalDAV server lies in Nextcloud "server", not the Calendar app. Any Nextcloud app can connect to the CalDAV server through CalDAV, just like Calendar and Tasks do it. UX and implementation are different things that are not exclusive.

tcitworld avatar Feb 03 '23 14:02 tcitworld

The CalDAV server lies in Nextcloud "server", not the Calendar app. Any Nextcloud app can connect to the CalDAV server through CalDAV, just like Calendar and Tasks do it. UX and implementation are different things that are not exclusive.

Well, they are saved in a table called "calendarobjects". So, for all intents and purposes, they are "saved in a calendar". In any case, it remains the fact that a journal entry, by definition, is connected to a date. It goes into a calendar. Notes, on the other hand, are by definition timeless.

unalignedcoder avatar Feb 03 '23 19:02 unalignedcoder

I have a Joomla component in development which uses VJOURNAL on a CalDAV server (eg Nextcloud Calendars) to store Journal entries and synchronise them with other apps (eg Evolution Mail on Linux, jtxBoard on Android and others).

It is a bit of a pain that although Nextcloud Calendar correctly handles VJOURNAL entries if you either create a new calendar remotely (from a CalDAV client) or manually add VJOURNAL components type to NC database entry for the calendar, there is no way within NC to either create a calendar with VJOURNAL enabled, or to add VJOURNAL capability to an existing calendar.

This would make NC much more useful as a CalDAV server, whatever native NC apps for Journal/Diary might ultimately be developed to use the facility.

Its a bit of a catch-22 to say that NC doesn't need to recognise VJOURNAL because no-one has developed a NC app to display journals within NC because NC (on the surface) doesn't appear to recognise VJOURNAL (although in fact it does and it works perfectly well)

Please can this request get some serious consideration, it appears to be quite simple to implement.

rogercreagh avatar Jun 09 '23 21:06 rogercreagh

In any case, it remains the fact that a journal entry, by definition, is connected to a date. It goes into a calendar. Notes, on the other hand, are by definition timeless.

Not quite - a note will have a created date,and probably a modified date as well. In CalDAV terms a VJOURNAL entry (like VEVENT AND VTODO) has a DTSTAMP (=created date) and LAST-MODIFIED (=modified date) property.

VEVENT and VTODO must have at least a DTSTART date (and often a DTEND) property.

For VJOURNAL on the other hand DTSTART is optional - a journal entry with a DTSTART set is tied to that date for display (like a diary entry appears on a specific day in real life) - it can be just date or date-time. A VJOURNAL entry without DTSTART set is not tied to a specific display date (but can still be ordered and filtered by DTSTAMP or LAST-MODIFIED) and is in effect a Note.

A native NC Journal App would handle both journal/diary entires (dated with DTSTART) and Notes (undated).

rogercreagh avatar Jun 09 '23 21:06 rogercreagh

I don't want to step on anybody's toes, but I read somewhere that VJOURNAL will not get more consideration as long as people aren't interested in it. This is me stating my interest.

Also, thanks @devvv4ever , after reading a lot of other stuff, I finally understand why my journal entries cannot be synchronized via my Nextcloud instance. I tried updating it, but it won't budge. The update process just fails at some point, so I didn't bother any longer. The fact that I have an old NC instance prevents the journal entries from syncing over my NC.

The strange thing is that it seems to also not be syncable over my company's Nextcloud. This instance is definitely up-to-date (I've had a short-lived argument about that fact with my boss a while back, and she told me it's being taken care of.)

All I am looking for, really, is a way to restore my journal entries should I lose my mobile device. At this point in time, I don't really care for editing them on desktop. I really just want to be able to download them to a new device should my current one break.

thymaro avatar Jul 26 '23 12:07 thymaro

Hi @thymaro ,

There was a problem creating collections with support for all components in ownCloud. Maybe there could be a similar problem with your older NC instance: https://github.com/TechbeeAT/jtxBoard/discussions/48#discussioncomment-4411959

At least I guess it's worth having a look.

Please also have a look at this article just to make sure nothing basic is going wrong: https://jtx.techbee.at/troubles-with-the-synchronization-see-what-could-go-wrong

patrickunterwegs avatar Jul 26 '23 12:07 patrickunterwegs

Also, thanks @devvv4ever , after reading a lot of other stuff, I finally understand why my journal entries cannot be synchronized via my Nextcloud instance. I tried updating it, but it won't budge. The update process just fails at some point, so I didn't bother any longer. The fact that I have an old NC instance prevents the journal entries from syncing over my NC.

The strange thing is that it seems to also not be syncable over my company's Nextcloud. This instance is definitely up-to-date (I've had a short-lived argument about that fact with my boss a while back, and she told me it's being taken care of.)

Hi, for your own instance of NC what version are you running? Are you trying to sync with an existing calendar, or one that you have created from outside NC with a VJOURNAL aware app - eg DavX5?

If you create a new calendar in DavX5 you can specify it to include VJOURNAL and NC will do this. But once a calendar is created it can't be changed to add VJOURNAL remotely (there is no CalDAV command to edit a calendar) except....

... if it is your own instance of NC and you have access to the server database (eg with phpmyadmin) you can manually edit the database entry for a calendar and add ,VJOURNAL to the components field. NC will then save and sync VJOURNALitems.

The same applies to your company's NC - by default NC does not enable VJOURNAL (it would be simple to fix this and adding VJOURNAL to all calendars would have no impact for people not using journal items). You will probably need to ask your IT people to make the relevant change in the database for an existing calendar.

rogercreagh avatar Jul 27 '23 11:07 rogercreagh

There are two (very minor) first steps that NC developers could take:

  1. Add the option to allow VJOURNAL entries when creating a calendar. This would involve adding two further lines to the create calendar menu image Add New calendar with journals and New calendar with tasks and journals to that dialogue with the change to the code behind to include ,VJOURNAL in the components field in oc_calendars table.

  2. Add an option in the three dots menu for a calendar image (or elsewhere, possibly under user settings) to allow VJOURNAL to be retrospectively added to an existing calendar if it was missing - a fairly simple bit of code behind to update the oc_calendars table. This is important to allow existing calendars to be used without having to resort to manually changing the database (which maybe beyond the reach of many users who simply want to add journal capability to an existing calendar)

rogercreagh avatar Jul 27 '23 11:07 rogercreagh

@rogercreagh please see https://github.com/nextcloud/calendar/issues/4436#issuecomment-1585594714

tcitworld avatar Jul 27 '23 12:07 tcitworld

for your own instance of NC what version are you running? Are you trying to sync with an existing calendar, or one that you have created from outside NC with a VJOURNAL aware app - eg DavX5?

If you create a new calendar in DavX5 you can specify it to include VJOURNAL and NC will do this. But once a calendar is created it can't be changed to add VJOURNAL remotely (there is no CalDAV command to edit a calendar) except....

aha! I didn't even know I could create new calendars from within Davₓ5. This worked and I take everything back.

NC v24.0.4. I will soon need to take care of that, probably by smashing everything to pieces and reinstall, but I'll have to analyze why I can't upgrade, then adapt my host's install script or some setting in the backend. I'll see.

I was trying to sync with an existing calendar created in NC. When creating a calendar in Davₓ5, I can select all three options, including VTODO and VJOURNAL.

thymaro avatar Jul 28 '23 04:07 thymaro