No description
- New pure-vanilla progressive formatter that turns typed digits into
(123) 456-7890 (or 1 (800) 555-1212 for +1 numbers) on the fly.
- Works for free-form input: typing, pasting, editing anywhere, backspacing,
extra chars, etc. — no hard mask or input restrictions.
- Applied to:
- The Preact <rpt-booking> widget phone field (home page quick booking + details).
- The final Drupal confirmation form at /schedule/book (via lightweight
enhancer + .rpt-phone class).
- Prefills last_name / phone / comments on the confirmation form when the
widget was used to pick the slot (so collected phone isn't lost).
- No new dependencies whatsoever:
* Zero npm / package.json / composer changes.
* Zero additional CDN / external scripts (uses native String.replace,
regex, and input event + selection APIs only).
* The new js/phone-format.js is simply attached via the pre-existing
'app' library (already loaded on all riverside_pt.* routes).
* Formatter logic duplicated in the ESM component (tiny pure function).
- The two other modified files (calendar.css, calendar.js) were left
uncommitted as they are unrelated to this feature.
|
||
|---|---|---|
| .gitea/workflows | ||
| .idea | ||
| .vscode | ||
| config/sync | ||
| docker | ||
| node_modules | ||
| scripts | ||
| web | ||
| .gitignore | ||
| build.sh | ||
| CLAUDE.md | ||
| composer.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Makefile | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tailwind.config.js | ||
Riverside Physical Therapy
A Drupal-based appointment scheduling site for booking sessions between patients and practitioners.
Running locally
docker compose up --build
Default behavior: Every start performs a full database wipe + rebuilds the entire site from code (content types, fields, menu, etc.). See CLAUDE.md for details and the DRUPAL_FAST=1 escape hatch for faster iteration.
Admin login: admin / admin at /user/login
Makefile commands
make shell # open a bash shell in the app container
make drush <cmd> # run any drush command, e.g. make drush cr
Scripts
Seed provider availability
Populates provider_availability nodes for the next calendar month across all active providers, using randomised noise per provider.
make drush php-script scripts/seed_availability.php
Preview without saving:
SEED_DRY_RUN=1 make drush php-script scripts/seed_availability.php
Wipe existing availability for the month before seeding:
SEED_WIPE=1 make drush php-script scripts/seed_availability.php
Running the script twice without SEED_WIPE=1 will create duplicates.
Modules
- FullCalendar View — interactive appointment calendar
- Webform — patient booking forms
- Symfony Mailer — transactional email