DEV Community

Cover image for OpenSparrow v3.9 - makes the board and calendar fully touch-friendly
Tomasz
Tomasz

Posted on

OpenSparrow v3.9 - makes the board and calendar fully touch-friendly

OpenSparrow v3.9 makes the board and calendar fully touch-friendly and moves the CRM demo out of the setup wizard. A shared pointer-drag shim brings drag & drop to touch devices; the demo is now an opt-in in Admin → Demo after first login.

Touch drag & drop for board and calendar

HTML5 drag & drop never fires dragstart / dragover / drop for touch pointers — dragging a board card on a phone did nothing. Workarounds (long-press timers, hijacked touchmove) fail: the browser decides the scroll-vs-drag gesture before JavaScript can react.

v3.9 fixes this with CSS, not JavaScript: the shim (public/assets/js/util/touch-dnd.js) sets touch-action at wiring time — pan-y on board cards (horizontal drags, vertical swipes scroll) and none on calendar chips. The browser routes the gesture natively; no timers, no hijacked scrolling.

Drags start by movement, not hold time — a >12 px, direction-aware slop keeps taps as clicks. A ghost follows the finger, drop targets highlight, and pointercancel cleans up. Gated on pointerType === 'touch', the shim leaves desktop HTML5 DnD untouched; both paths call the same move function (moveCard, moveEventTo) — one source of truth for optimistic update, API call and rollback. It wires only where modules gate on canEdit. A same-pass fix puts the drop-target class on the lane element itself, so the highlight renders.

The setup wizard no longer installs the demo

The demo checkbox is gone; the wizard now does one thing: schema, system tables, migrations, and the first admin account with a one-time random password. The demo itself is untouched — after first login, Admin → Demo offers every part (sample tables, dashboards, board, RAG knowledge base, demo accounts) as a reversible opt-in. public/setup_api.php no longer fakes a logged-in admin session mid-setup, and the four setup.*demo* i18n keys were dropped from all 20 language files.

Smaller interface changes

  • Nav menu items got thin 1px borders, stronger on hover and active — structure without visual noise
  • The sidebar collapse icon right-aligns to the far edge of the menu, where it reads as "collapse this"

Upgrade notes

No database migration, no removed configuration keys; the release migration only deletes the unused public/mock.html. One caveat: emulated pointers bypass native scrolling, so the shim was validated on real devices before shipping.

Following this series?

OpenSparrow v3.8 — a Roadmap (Gantt) module and a spreadsheet-style grid

Websites

https://opensparrow.org

Top comments (0)