nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
986 stars 239 forks source link

Support VJOURNAL entries in Web UI #4447

Open ColdHotman opened 2 years ago

ColdHotman commented 2 years ago

Is your feature request related to a problem? Please describe.

No Nextcloud app support VJOURNAL calendar entries, even though Nextcloud does through the backend and officially featured connectors like GNOME Online Accounts and DAVx5.

I can sync a journal entry from JTX in my Nextcloud calendar on Android through DAVx5 to my Nextcloud server, to GNOME Online Accounts and Evolution on Linux. But there's no way to display or manipulate those entries in Nextcloud itself.

Describe the solution you'd like

Journals in Calendar

I think journal entries would go well with the calendar app just like task and deck entries. The calendar views would be a practical tool to get an timeline overview of journal entries, be it a quick glance at the titles, check regularity and frequency or quickly navigate to an entry at a specific date.

Journal entries themselves can be used for anything, i.e. repeating technical reports, diary entries, personal medical registrations, meeting notes etc.

In the long term, a dedicated app for journal entries would most likely be ideal. But displaying journal entries in the calendar app is a quick fix to the complete lack of web UI. In the long term, perhaps journal entries belong in the calendar anyways, with the same type of link to the dedicated app as tasks have?

It's worth noting the standard of splitting VJOURNAL-entries in two, where entries without a start date is considered a memo. Memos would be incompatible with the concept of Calendar, so such entries could be dumped in a Memo-section and just sorted by title until a dedicated Journal app appears. After that it would probably be best for Calendar to ignore memos.

Suggestion and mockup

My suggestion for the input interface is basically a simplified copy of the existing event creation interface. Regular sidebar unless a "Journal" toggle box is selected. This toggle would switch the interface from standard to journal input and toggle the VJOURNAL flag in the calendar entry.

Mockup - Journal

Details

Remove other tabs because they're relevant to journal entries, then remove tab row because there's only one tab?

Location: No change Description: No change, perhaps expand input field to improve writing. Confirmation status: Remove When Shared: No change Busy status: No change Categories: No change Event Color: No change Reminder: Remove Recurrence: Remove

I imagine there's a lot of shared code and functionality since the only difference between a calendar entry and a journal entry is a single toggle.

Displaying journal entries

Displaying journal entries in the calendar views could be just like tasks, with a short 5 or 15 minute "timeslot" displaying the entry's title. Opening the entry could perhaps be done by doing a VJOURNAL check when opening the entry and then showing the correct interface.

Describe alternatives you've considered

Continuing using Nextcloud Notes, great for taking notes, not so much for creating and browsing time-based entries. No [TOC], table of content support for timestamp headers.

Use the ugly and unintuative native apps on desktop instead of the beautiful and sleek web interface of NC Calendar.

Additional context

"It is a rarely used function because there's little support for it because it's a rarely used function because there's little support for it."

ChristophWurst commented 2 years ago

Related: https://github.com/nextcloud/calendar/issues/4436

tcitworld commented 2 years ago

For reference https://github.com/danielroehrig/diary/issues/49

st3iny commented 3 days ago

I discussed this with the maintainers of Nextcloud Text the other day. It would be nice to integrate the shared rich text editor here for the journal's content.

RokeJulianLockhart commented 1 day ago

Apologies for notifying you all with this comment, but per https://support.github.com/ticket/personal/0/3105604#tc-32316159324820, I literally cannot subscribe to this issue any other way.

#### Description When I visit https://github.com/nextcloud/calendar/issues/4447, I am unable to subscribe to it. Strangely, this solely occurs to this issue — no others, in any repositories. Noteworthily, despite the “Custom” subscription type being reintroduced to the new issue GUI, it's not available for this issue alone: see https://youtube.com/watch?v=kysweReUJ4k.
#### Reproduction Steps 1. Visit github.com/nextcloud/calendar/issues/4447. 1. Attempt to “Subscribe”. #### Fault Type Permanent — Occurring repeatably #### Blocking? Yes #### Last working date 16 November #### Logs 1. #### Request Headers ```YAML POST /github/collect HTTP/2 Host: collector.github.com User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0 Accept: */* Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate, br, zstd Referer: https://github.com/nextcloud/calendar/issues/4447 Content-Type: text/plain;charset=UTF-8 Content-Length: 1606 Origin: https://github.com Connection: keep-alive Cookie: _octo=GH1.1.1160912290.1711479446; logged_in=yes; dotcom_user=RokeJulianLockhart; color_mode=%7B%22color_mode%22%3A%22auto%22%2C%22light_theme%22%3A%7B%22name%22%3A%22light%22%2C%22color_mode%22%3A%22light%22%7D%2C%22dark_theme%22%3A%7B%22name%22%3A%22dark%22%2C%22color_mode%22%3A%22dark%22%7D%7D; tz=Europe%2FLondon; preferred_color_mode=dark; cpu_bucket=xlg; fs_uid=#o-1RHF78-na1#86577255-bb1c-4c67-942a-365444298154:a735cbdb-7c9d-4d82-b772-a04dab312ddb:1732136316095::3#a269a88f#/1763672315; fs_lua=1.1732136918955 Sec-Fetch-Dest: empty Sec-Fetch-Mode: no-cors Sec-Fetch-Site: same-site Priority: u=6 TE: trailers ``` 1. #### Response Headers ```YAML HTTP/2 204 date: Wed, 20 Nov 2024 21:11:30 GMT access-control-allow-methods: POST,OPTIONS access-control-allow-headers: Content-Type access-control-allow-credentials: true access-control-allow-origin: * cache-control: no-cache x-runtime: 0.003800 strict-transport-security: max-age=631138519 x-frame-options: DENY x-content-type-options: nosniff x-xss-protection: 1; mode=block x-download-options: noopen x-permitted-cross-domain-policies: none x-github-backend: Kubernetes x-github-request-id: C74C:1775D7:44011E:567E7E:673E507C X-Firefox-Spdy: h2 ```