Skip to content

feat(kronolith): organizer UI for disallow new time proposals#61

Merged
TDannhauer merged 2 commits into
FRAMEWORK_6_0from
feat/disallow-new-time-proposal-ui
Jun 19, 2026
Merged

feat(kronolith): organizer UI for disallow new time proposals#61
TDannhauer merged 2 commits into
FRAMEWORK_6_0from
feat/disallow-new-time-proposal-ui

Conversation

@TDannhauer

Copy link
Copy Markdown
Contributor

Summary

  • Add organizer checkbox on the Attendees tab to forbid attendee time proposals (EAS 16.1 / DISALLOW-COUNTER)
  • Wire readForm, full JSON export (dntp), and JS visibility toggling for organizer events with attendees
  • Extend unit tests for form handling, JSON export, and iCal round-trip

Motivation

Backend support for DisallowNewTimeProposal / DISALLOW-COUNTER already existed for ActiveSync calendar sync and meeting responses, but organizers had no UI to set the flag. Phase 3C manual testing required a Kronolith editor control.

Changes

  • lib/Event.php: public disallowsNewTimeProposal() / setDisallowNewTimeProposal(), readForm + toJson wiring
  • templates/dynamic/edit.inc, js/kronolith.js: checkbox and show/hide logic
  • test/Kronolith/Unit/EventActiveSyncTest.php: form, JSON, iCal tests

Test plan

  • vendor/bin/phpunit -c phpunit.xml.dist test/Kronolith/Unit/EventActiveSyncTest.php (13 tests)
  • Manual EAS 16.1 Phase 3C: organizer sets flag, calendar sync exports POOMCAL:DisallowNewTimeProposal=1, iOS no longer offers propose-alternative

Made with Cursor

Expose the existing DISALLOW-COUNTER / EAS DisallowNewTimeProposal backend in the event editor so organizers can toggle attendee time proposals. Wire readForm, full JSON export (dntp), attendee-tab checkbox, and unit tests for form, JSON, and iCal round-trip.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a new organizer-facing control in the Kronolith dynamic event editor to disallow attendee time proposals (EAS 16.1 / iCal DISALLOW-COUNTER), wiring it through form handling and full JSON export, and extending unit coverage for the new behavior.

Changes:

  • Expose disallowsNewTimeProposal() / setDisallowNewTimeProposal() on Kronolith_Event, wire readForm() and full toJson() output (dntp).
  • Add an Attendees-tab checkbox plus JS logic to show/hide it only for organizer events with attendees.
  • Extend ActiveSync unit tests to cover form parsing, JSON export, and iCalendar round-trip.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
lib/Event.php Adds public API + wires the flag into readForm() and full JSON export.
templates/dynamic/edit.inc Adds the organizer checkbox in the dynamic editor’s Attendees tab.
js/kronolith.js Resets, populates, and conditionally displays the checkbox based on organizer/attendee state.
test/Kronolith/Unit/EventActiveSyncTest.php Adds tests validating form behavior, JSON export, and iCal round-trip preservation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread templates/dynamic/edit.inc Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@TDannhauer TDannhauer merged commit a1b0f7f into FRAMEWORK_6_0 Jun 19, 2026
0 of 6 checks passed
ralflang added a commit that referenced this pull request Jun 30, 2026
Release version 5.0.0

test: add @coversNothing to coverage-neutral test
style: explicit nullable type and corrected block indentation
chore: update CI
feat(kronolith): simplify iTIP invitation mail and templates
Merge pull request #62 from horde/fix/icon-sidebar-ac
fix(kronolith): group sidebar share icon with action controls
Merge pull request #61 from horde/feat/disallow-new-time-proposal-ui
Potential fix for pull request finding
feat(kronolith): organizer UI for disallow new time proposals
fix(block): close _eventsForDay method in portal Month block
Merge pull request #59 from horde/feat/polish_EAS16.1
fix(kronolith): harden EAS 16.1 proposal-clear export
Merge pull request #60 from horde/fix/portal-month-block
Potential fix for pull request finding
fix(kronolith): show events in This Month portal block
feat(kronolith): EAS 16.1 counter-proposals and proposal clear on sync
fix(kronolith): scope ESC navigation and restore RedBox fade
Delete doc/pr directory
fix(kronolith): allow reopening event dialog after close
fix(kronolith): guard count() on null cancellations in sendITipNotifications
fix(kronolith): preserve timezone in attendee proposal storage
Potential fix for pull request finding
Potential fix for pull request finding
Potential fix for pull request finding
feat(kronolith): store and sync EAS 16.1 attendee proposals and disallow flags
Refactor oldProperties assignment using null coalescing
Merge pull request #56 from horde/fix/add_event_EAS16.0_allday
Merge branch 'FRAMEWORK_6_0' into fix/add_event_EAS16.0_allday
fix(maps): use sensible default zoom when opening event map
Merge pull request #55 from horde/fix/icons_II
Fix CSS selectors for iconEdit/iconDelete to target anchor-wrapped images
fix(icon): deduplicate code
feat(kronolith): implement EAS 16.0 calendar sync and all-day import fix
fix(kronolith): apply EAS 16 date-only import for new all-day events
fix(kronolith): use transparent 48px event icons with background-aware colors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants