MobileCalendarController

Mobile Events Controller

Touch-optimized event list for viewing gatherings on mobile devices. Extends MobileControllerBase for offline handling and retry logic.

Features:

  • Weekly grouped event list
  • Search and filtering (type, branch, RSVP status)
  • Quick month navigation
  • RSVP with offline queue support
  • Pull-to-refresh support

Constructor

new MobileCalendarController()

Methods

applyFilters()

Apply current filters

clearFilters()

Clear all filters

createBottomSheet()

Create RSVP modal container

escapeHtml()

Escape HTML entities

formatTime()

Format time for display

getWeekStart()

Get the start of the week (Sunday)

groupEventsByWeek()

Group events by week

(async) handleAttendanceFormSubmit()

Handle attendance form submission

(async) handleDeleteAttendance()

Handle delete attendance

(async) handleRsvpClick()

Handle RSVP button click - online uses modal, offline queues RSVP

handleSearch()

Handle search input with debounce

initYearSelector()

Initialize year selector with range

(async) loadCalendarData()

Load calendar data from server

onConnect()

Called after base class connect

onConnectionStateChanged()

Called when connection state changes

onDisconnect()

Called after base class disconnect

populateFilters()

Populate filter dropdowns from event data

(async) queueOfflineRsvp()

Queue an RSVP for sync when back online

renderActivities()

Render activities list for an event

renderEventList()

Render the event list grouped by week

renderWeekEvents()

Render events for a week

restoreFromUrlParams()

Restore month/year from URL parameters

setupModalFormHandlers()

Setup form handlers for the attendance modal

setupPullToRefresh()

Set up pull-to-refresh

(async) showRsvpSheet()

Show RSVP modal by loading attendance modal content from server

(async) syncPendingRsvps()

Sync pending RSVPs to server

toggleFilters()

Toggle filter panel visibility

updateNavigationSelectors()

Update navigation selectors to current values

(async) updatePendingBanner()

Update the pending RSVPs banner visibility

updateResultsCount()

Update results count display