Skip to content

Conversation

@tammi-23
Copy link
Contributor

Added a Calendar Panel to the User Account Page.
This includes: CalDAV URL, username and an information about the Calendar-Implementaion.

This implements: #600

@tbsbdr
Copy link
Contributor

tbsbdr commented May 15, 2025

forwarding screenies from @tammi-23 - @db-ot could oyu please provide feedback?

image

image

@tammi-23
Copy link
Contributor Author

With the latest push, I updated the Radicale/CalDAV check to verify whether the redirect URL includes /caldav/.
#600

I also extended OcTag.vue by adding a color prop with a default value and implemented our website's highlight color (#ca8df5) as a custom option.

Additionally, I added a new configuration to our Docker development stack to enable Radicale.

Still missing: Unit Tests

Copy link
Contributor

@JammingBen JammingBen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few annotations from my side, but overall it looks quite good already!

const calDavAvailable = ref(false)
const copiedIcon = 'check'
const copyIcon = 'file-copy'
const checked = ref(false)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can give the variable a more descriptive naming

calDavAvailable.value = true
}
} catch (error) {
console.error('CalDAV check failed:', error)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
console.error('CalDAV check failed:', error)
console.info('CalDAV check failed:', error)

Since CalDav is not required for a working OpenCloud Instance, I wouldn't announce an error

Copy link
Contributor

@JammingBen JammingBen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some final cleanup, rest LGTM 👍

Comment on lines 105 to 109
#traefik.http.routers.opencloud.middlewares: cors,redirect-caldav
#traefik.http.middlewares.redirect-caldav.redirectregex.regex: '^/.well-known/caldav$'
#traefik.http.middlewares.redirect-caldav.redirectregex.replacement: '/caldav/'
#traefik.http.middlewares.redirect-caldav.redirectregex.permanent: true

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#traefik.http.routers.opencloud.middlewares: cors,redirect-caldav
#traefik.http.middlewares.redirect-caldav.redirectregex.regex: '^/.well-known/caldav$'
#traefik.http.middlewares.redirect-caldav.redirectregex.replacement: '/caldav/'
#traefik.http.middlewares.redirect-caldav.redirectregex.permanent: true

Comment on lines 252 to 254
traefik.http.middlewares.radicale-redirect.redirectregex.regex: '^http://(.*):5232(.*)'
traefik.http.middlewares.radicale-redirect.redirectregex.replacement: 'http://$1:9201$2'
traefik.http.middlewares.radicale-redirect.redirectregex.permanent: true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these can be removed as well?

Suggested change
traefik.http.middlewares.radicale-redirect.redirectregex.regex: '^http://(.*):5232(.*)'
traefik.http.middlewares.radicale-redirect.redirectregex.replacement: 'http://$1:9201$2'
traefik.http.middlewares.radicale-redirect.redirectregex.permanent: true

Comment on lines 296 to 301
#labels:
#traefik.enable: true
#traefik.http.routers.radicale.tls: true
#traefik.http.routers.radicale.rule: PathPrefix(`/`)
#traefik.http.routers.radicale.entrypoints: websecure
#traefik.http.services.radicale.loadbalancer.server.port: 5232
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#labels:
#traefik.enable: true
#traefik.http.routers.radicale.tls: true
#traefik.http.routers.radicale.rule: PathPrefix(`/`)
#traefik.http.routers.radicale.entrypoints: websecure
#traefik.http.services.radicale.loadbalancer.server.port: 5232

Copy link
Contributor

@AlexAndBear AlexAndBear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

<oc-table-tr class="account-page-info-caldav-url">
<oc-table-td>{{ $gettext('CalDAV URL') }}</oc-table-td>
<oc-table-td>
<span class="oc-text-truncate">{{ configStore.serverUrl }}</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did this change ? I thought we need a full url with /caldav slug, now its only the server url ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only the server URL is correct, because calendar apps will use the .well-known endpoints automagically.

@tammi-23 tammi-23 merged commit 18c7281 into main May 22, 2025
18 checks passed
@tammi-23 tammi-23 deleted the feat/600 branch May 22, 2025 09:36
@openclouders openclouders mentioned this pull request May 22, 2025
1 task
openclouders pushed a commit that referenced this pull request May 22, 2025
* feat: Added Calendar for CalDAV URL to the Accountpage (only for radicale)
* feat: Include radicale in web-dev stack.
---------

Co-authored-by: Jannik Stehle <j.stehle@opencloud.eu>
Co-authored-by: Alex Ackermann <abackermann91@gmail.com>
@openclouders openclouders mentioned this pull request Jun 2, 2025
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants