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
1pxborders, 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
Top comments (0)