calendar
calendar copied to clipboard
multiMonthYear view unusable with even a *moderate* amount of entries
Steps to reproduce
- Create a group with 5–10 users
- Share a few calendars with each other
- Create around 5 recurring weekly events plus a dozen singular events throughout the year
- Click on Year in the "range selector" (
/apps/calendar/multiMonthYear/now
) - See Firefox asking if you want to Stop the website
Expected behavior
An overview of all the months, and all the days in the year.
Actual behaviour
An unresponsive website.
Bonus behaviour: When loading long enough, Nextcloud saves multiMonthYear
as currentView
in the user's oc_preferences
: select * from oc_preferences where configkey='currentView' and appid='calendar' and configvalue='multiMonthYear';
So closing the tab, and opening the calendar in a new tab may lead to an unresponsive browser again.
Calendar app version
4.6.4
CalDAV-clients used
none
Browser
Firefox 122, Chromium 121, various others
Client operating system
Ubuntu 22.04
Server operating system
Ubuntu 22.04
Web server
Nginx
Database engine version
PostgreSQL
PHP engine version
PHP 8.2
Nextcloud version
28.0.1
Updated from an older installed version or fresh install
Updated from an older version
List of activated apps
default apps + `user_oidc`
Nextcloud configuration
default config
Web server error log
no errors in web server log (it's a javascript performance issue, isn't it?)
Log file
no related nextcloud.log entries
Browser log
JQMIGRATE: Migrate is installed, version 3.4.1 jquery-migrate.min.js:2:980
Global search initialized! GlobalSearch.vue:51
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: null }
Object { _uid: 24, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
index.module.js:2:811376
You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation. NcInputField.js:2:29731
@nextcloud/calendar-js app is using version 2.2023c of the timezone database index.es.mjs:13553:12
Fallback to locale en moment.js:93:11
session heartbeat polling started session-heartbeat.js:103:9
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: null }
Object { _uid: 24, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
index.module.js:2:811376
Proxying an event bus of version 3.1.0 with 1.3.0 index.es.js:2337:14
Registering notifications container as a menu NotificationsApp.vue:219
Notifications permissions granted NotificationsApp.vue:453
Polling interval updated to 30000 NotificationsApp.vue:416
Started background fetcher as session_keepalive is enabled NotificationsApp.vue:275
Search providers
Array(15) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]
GlobalSearchModal.vue:243
Contacts
Array(19) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]
GlobalSearchModal.vue:247
Got notification data, restoring default polling interval. NotificationsApp.vue:376
calendar home scanned
Array(20) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]
Array [ {…} ]
Array []
calendars.js:596:10
The `name` prop is required. Please migrate away from the deprecated `title` prop. 2 index.module.js:2:857755
The `name` prop is required. Please migrate away from the deprecated `title` prop. index.module.js:2:857755
The `name` prop is required. Please migrate away from the deprecated `title` prop. index.module.js:2:857755
The `name` prop is required. Please migrate away from the deprecated `title` prop. 17 index.module.js:2:857755
The `name` prop is required. Please migrate away from the deprecated `title` prop. index.module.js:2:857755
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: null }
Object { _uid: 24, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
index.module.js:2:811376
### Additional info
We understand that optimizing javascript can become more effort than is worth it pretty fast, so we'd be happy with a way to simply hide the "Year"/multiMonthYear option from the user interface completely.
Same here, also updated from an older version. NC 28.0.2, PHP 8.2, Apache, MySQL But other than the original poster we need the year view.
Same here, fresh install on Debian12, PHP 8.2, MariaDB, Apache, NC 28.0.2.
same here, it was working fine with nc 28.0.1 for me, updated to 28.0.2 today. both with calendar 4.6.4 - > issue started popping up today.
@netzpolitikorg thanks for the sql part!
Just some more info: (Nextcloud 28.0.3, Calendar-App 4.6.6)
- This bug is also triggered when not sharing calendars. I have two personal calendars with recurring events and see the same issue.
- you can revert the bonus-behaviour (current view changed to the broken yearly one) by navigating manually to https://your-server/index.php/apps/calendar/dayGridMonth/now and select another view then (and wait long enough to change the current view). No SQL required.
Please try again with v4.6.7. We merged a bugfix in the upstream fullcalendar lib: https://github.com/nextcloud/calendar/pull/5783.
Thank you so much! Fixed!