Bug 456233 - "Invalid dates provided" for any/all inputs -> cannot create/edit events
Summary: "Invalid dates provided" for any/all inputs -> cannot create/edit events
Status: REPORTED
Alias: None
Product: Merkuro
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Debian testing Linux
: NOR major
Target Milestone: ---
Assignee: Claudio Cambra
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-02 08:34 UTC by hello
Modified: 2024-06-08 21:33 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Screenshot of faulty input validation error (35.07 KB, image/png)
2022-07-02 08:34 UTC, hello
Details

Note You need to log in before you can comment on or make changes to this bug.
Description hello 2022-07-02 08:34:10 UTC
Created attachment 150336 [details]
Screenshot of faulty input validation error

SUMMARY

New events cannot be created and existing events (synced via CalDAV) cannot be edited because of a false-positive input validation check.

STEPS TO REPRODUCE
1. (see installation notes below)
2. Launch Kalendar
3. Click "+ Create"

OBSERVED RESULT

When creating a new event or editing an existing one (as imported via CalDAV), an "Invalid dates provided" input validation message appears at the top of the Add/Edit event dialog. (See attached screenshot.) This failed validation causes the "Save" button to be greyed out and renders it impossible to persist any changes or new events to disk. This occurs for valid start/end times; as far as I can tell, there are no start/end date-time combinations that the dialog will accept.

It may be worth noting that setting an actually-invalid start/end time causes the error message to change to "End date cannot be before start date." Reverting to a valid range merely causes the original error message to return.

EXPECTED RESULT

The "Invalid dates provided" error message should not appear for valid inputs (and certainly should not appear for the default values for a new Create Event dialog window).

SOFTWARE/OS VERSIONS
Linux kernel: 5.18.0-2-amd64
KDE Plasma Version: 5.24.5
KDE Frameworks Version: 5.94.0
Qt Version: 5.15.4

ADDITIONAL INFORMATION
Kalendar was installed against the latest master branch from GitHub (dca467e / v22.07.70) on Debian testing:

```sh
# install dependencies
$ sudo apt install git cmake build-essential gettext extra-cmake-modules qtbase5-dev qtdeclarative5-dev libqt5svg5-dev qtquickcontrols2-5-dev qml-module-org-kde-kirigami2 kirigami2-dev libkf5i18n-dev gettext libkf5coreaddons-dev qml-module-qtquick-layouts qml-module-qtlocation qml-module-qt-labs-qmlmodels qtlocation5-dev qml-module-qtpositioning qtpositioning5-dev libkf5mime-dev libkf5calendarsupport-dev libkf5akonadicontact-dev libkf5akonadi-dev libkf5windowsystem-dev libkf5package-dev libkf5calendarcore-dev libkf5configwidgets-dev libkf5contacts-dev libkf5people-dev libkf5eventviews-dev libkf5notifications-dev libkf5qqc2desktopstyle-dev kdepim-runtime ninja-build

$ git clone https://github.com/kde/kalendar
$ cd kalendar
$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local -GNinja
$ ninja
$ ninja install
```

At this point, kalendar failed to launch:

```sh
$ kalendar
QML debugging is enabled. Only use this in a safe environment.
QQmlApplicationEngine failed to load component
qrc:/main.qml:17:1: module "org.kde.kalendar.contact" is not installed
```

To resolve this issue, I simply copied the `build/bin/org/` directory into `~/.local/bin`:

```sh
/home/rlue/tmp/kalendar/build $ cp -a bin/org ~/.local/bin
```

I'm fairly certain this wasn't the correct way to resolve this plugin path issue, but after doing this, kalendar works in all respects except for the bug outlined above.
Comment 1 Matej Starc 2023-04-25 14:47:05 UTC
I also can't create any events. Even if I fill every input with something.
Comment 2 Matija Šuklje 2023-10-03 17:56:09 UTC
I get the same issue on EndeavourOS, with merkuro installed from the package manager (using `yay`) and the calendar on Nextcloud.

merkuro.calendar 23.08.1

Operating System: EndeavourOS 
KDE Plasma Version: 5.27.8
KDE Frameworks Version: 5.110.0
Qt Version: 5.15.10
Kernel Version: 6.5.5-arch1-1 (64-bit)
Graphics Platform: X11

This is the console output when I run `merkuro-calendar` and edit an existing event:

```
org.kde.pim.akonadicalendar: Error occurred  "" "Unable to create persistent search"
org.kde.pim.akonadicalendar: Error occurred  "" "Unable to create persistent search"
qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible"
qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible"
qrc:/IncidenceInfoContents.qml:616:13: QML Heading: Binding loop detected for property "text"
qrc:/IncidenceInfoContents.qml:616:13: QML Heading: Binding loop detected for property "text"
qrc:/IncidenceInfoPopup.qml:41:26: QML IncidenceInfoContents: Binding loop detected for property "implicitWidth"
qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible"
qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible"
qrc:/IncidenceInfoContents.qml:616:13: QML Heading: Binding loop detected for property "text"
qrc:/GlobalMenu.qml: No such file or directory
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qml: Invalid Date
qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex"
qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex"
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qml: Invalid Date
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/IncidenceEditorPage.qml:172:17: QML TextField: Binding loop detected for property "text"
qrc:/IncidenceEditorPage.qml:706:38: QML TextField: Binding loop detected for property "text"
qml: Invalid Date
qml: Invalid Date
file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth"
file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth"
file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth"
file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth"
file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth"
file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth"
qrc:/dateutils.js:166: TypeError: Value is null and could not be converted to an object
qml: Can't calculate incidence item position for popup, no opening incidence item is set
```

This is when I get if I click to create a new event:
```
qrc:/GlobalMenu.qml: No such file or directory
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qml: Invalid Date
qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex"
qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex"
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qml: Invalid Date
qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null
qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qml: Invalid Date
qml: Invalid Date
```
Comment 3 Vitaly Sulimov 2024-06-08 21:33:58 UTC
Same for me.
Kde Neon, Merkuro Calendar version 24.05.0
As a workaround, I can modify the dates and times of the event I'm creating and switch focus between those fields. After that, the validation error goes away.