Commit e24f459
Fix calendar: MySQL 8.0 anniversary query crash and Quill toolbar duplication (#8128)
- [x] Fix MySQL 8.0 DATE filtering in AnniversariesCalendar.php
- [x] Fix Quill editor toolbar duplication (mount-once useEffect +
onChangeRef)
- [x] Add Cypress regression tests
- [x] Fix CI failure: replace `eslint-disable-next-line` with
`biome-ignore` comment in QuillEditor.tsx
- [x] Add `value` sync effect using `clipboard.convert` + `setContents`
(proper Quill API, preserves undo history vs raw innerHTML)
- [x] Improve Cypress test: wait for at least one toolbar before
asserting exact count of 2
<!-- START COPILOT ORIGINAL PROMPT -->
<details>
<summary>Original prompt</summary>
>
> ----
>
> *This section details on the original issue you should resolve*
>
> <issue_title>Bug: Churchcrm 7.0.0 calendar issue</issue_title>
> <issue_description>Hello @DawoudIO ,
>
> ## Quick, friendly bug report
>
> Thanks for helping us improve ChurchCRM. Clear details help us triage
and fix bugs faster.
>
> Please share:
> - **What happened**:
> I was in the process of manual installation of ChurchCRM 7.0.0 on Alma
Linux 8.10 with PHP 8.4, MYSQL 8.0, Apache 2.4 using
https://github.com/ChurchCRM/CRM/releases/download/7.0.0/ChurchCRM-7.0.0.zip.
>
> However, when I visit Calendar-> Select a specific date by clicking on
it -> Enter event title or select any option from dropdown i.e event
type or pinned calendars the toolbox keeps up adding another toolboxes
and this slows down the browser.
>
> Also cannot enter any description in Description field or text in
'Text' field or save any event.
>
> - **Steps to reproduce**:
> - Install Churchcrm
> - Go to Calendar -> Click on Specific date -> Try to add event title
or select anything from dropdowns .
> - Toolbox(Editors) keep on expanding and slow down the browser
>
> - **What you expected**: What should have happened instead
> - Churchcrm event calendar should have worked properly.
>
> If you're an admin and can access the app, the fastest way to collect
debug info:
>
> **Admin → System Maintenance → System Logs** (or click the debug
icon). Attach logs/screenshots if available — please redact private
data.
>
> Following is the app.log under logs folder :
>
> ```
> {"message":"Uncaught exception: Unable to execute statement [SELECT
family_fam.fam_ID, family_fam.fam_Name, family_fam.fam_Address1,
family_fam.fam_Address2, family_fam.fam_City, family_fam.fam_State,
family_fam.fam_Zip, family_fam.fam_Country, family_fam.fam_HomePhone,
family_fam.fam_Email, family_fam.fam_WeddingDate,
family_fam.fam_DateEntered, family_fam.fam_DateLastEdited,
family_fam.fam_EnteredBy, family_fam.fam_EditedBy,
family_fam.fam_scanCheck, family_fam.fam_scanCredit,
family_fam.fam_SendNewsLetter, family_fam.fam_DateDeactivated,
family_fam.fam_Latitude, family_fam.fam_Longitude,
family_fam.fam_Envelope FROM family_fam WHERE
family_fam.fam_WeddingDate<>:p1]","context":{"exception":{"class":"Propel\\Runtime\\ActiveQuery\\QueryExecutor\\QueryExecutionException","message":"Unable
to execute statement [SELECT family_fam.fam_ID, family_fam.fam_Name,
family_fam.fam_Address1, family_fam.fam_Address2, family_fam.fam_City,
family_fam.fam_State, family_fam.fam_Zip, family_fam.fam_Country,
family_fam.fam_HomePhone, family_fam.fam_Email,
family_fam.fam_WeddingDate, family_fam.fam_DateEntered,
family_fam.fam_DateLastEdited, family_fam.fam_EnteredBy,
family_fam.fam_EditedBy, family_fam.fam_scanCheck,
family_fam.fam_scanCredit, family_fam.fam_SendNewsLetter,
family_fam.fam_DateDeactivated, family_fam.fam_Latitude,
family_fam.fam_Longitude, family_fam.fam_Envelope FROM family_fam WHERE
family_fam.fam_WeddingDate<>:p1]","code":0,"file":"/{{PATH}}/{{TO}}/{{CHURCHCRM}}/vendor/perplorm/perpl/src/Propel/Runtime/ActiveQuery/QueryExecutor/AbstractQueryExecutor.php:148","previous":{"class":"PDOException","message":"SQLSTATE[HY000]:
General error: 1525 Incorrect DATE value:
''","code":0,"file":"/{{PATH}}/{{TO}}/{{CHURCHCRM}}/vendor/perplorm/perpl/src/Propel/Runtime/Connection/StatementWrapper.php:224"}},"method":"GET","path":"/{{RELATIVEURL}}/api/systemcalendars/1/fullcalendar","query":"_=1772455599736&start=2026-03-01T00%3A00%3A00&end=2026-04-12T00%3A00%3A00&timeZone=America%2FNew_York","ip":"{{IPADDRESS}}","user_agent":"Mozilla/5.0
(Windows NT 10.0; Win64; x64; rv:148.0) Gecko/20100101
Firefox/148.0"},"level":400,"level_name":"ERROR","channel":"defaultLogger","datetime":"2026-03-02T07:46:39.254766-05:00","extra":{"url":"/{{RELATIVEURL}}/api/systemcalendars/1/fullcalendar?_=1772455599736&start=2026-03-01T00%3A00%3A00&end=2026-04-12T00%3A00%3A00&timeZone=America%2FNew_York","remote_ip":"{{IPADDRESS}}","correlation_id":"{{ID}}"}}
>
> ```
>
> **Screenshots help**: If you can capture a quick image, it speeds up
our investigation.
>
> Following is the screenshot for the same :
>
> <img width="1014" height="624" alt="Image"
src="https://github.com/user-attachments/assets/f66f41e4-02a1-4697-8b80-27c90a3e0d80"
/>
> </issue_description>
>
> ## Comments on the Issue (you are @copilot in this section)
>
> <comments>
> </comments>
>
</details>
<!-- START COPILOT CODING AGENT SUFFIX -->
- Fixes #8123
<!-- START COPILOT CODING AGENT TIPS -->
---
🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: DawoudIO <554959+DawoudIO@users.noreply.github.com>
Co-authored-by: George Dawoud <george@dawouds.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 7f9d84a commit e24f459
File tree
12 files changed
+246
-12
lines changed- .agents/skills/churchcrm
- cypress/e2e
- api/private/admin
- ui/events
- react/components
- src
- ChurchCRM
- Dashboard
- SystemCalendars
- dto
- api/routes
- calendar
- people
12 files changed
+246
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
66 | 68 | | |
67 | 69 | | |
68 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
369 | 369 | | |
370 | 370 | | |
371 | 371 | | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
372 | 424 | | |
373 | 425 | | |
374 | 426 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
Lines changed: 80 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
19 | 52 | | |
| 53 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
21 | 34 | | |
22 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
23 | 41 | | |
24 | 42 | | |
25 | 43 | | |
| |||
53 | 71 | | |
54 | 72 | | |
55 | 73 | | |
56 | | - | |
| 74 | + | |
| 75 | + | |
57 | 76 | | |
58 | | - | |
| 77 | + | |
59 | 78 | | |
60 | 79 | | |
61 | 80 | | |
| |||
71 | 90 | | |
72 | 91 | | |
73 | 92 | | |
74 | | - | |
| 93 | + | |
75 | 94 | | |
76 | 95 | | |
77 | 96 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
| 55 | + | |
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
0 commit comments