- Fixed one-finger drag-to-scroll not working in the All Boards view and the Calendar view on Fairphone 4 Firefox and Ubuntu Touch Morph. These browsers do not emit the synthetic mouse events the `@wekanteam/dragscroll` library relies on, so scrolling only worked in the Swimlanes/Lists views. Added a new native touch-scrolling helper `client/lib/dragscrollTouch.js` that scrolls the nearest `.dragscroll` container with a one-finger drag (iOS is skipped, since native momentum scrolling already works there), and added the `dragscroll` class to the All Boards list and the Calendar view. - Fixed all text, buttons, the All Boards tables and the top bars (header and the second bar) rendering about 2x too large on Fairphone 4. `getMobileMode()` defaulted to mobile mode only for iPhone, so every other phone fell back to desktop mode, whose large desktop sizing looks oversized on a small phone screen. The default is now mobile mode for any phone-sized touch device (iPhone, Android/Mobile browsers, Ubuntu Touch, or a coarse-pointer touch screen with viewport width ≤ 800px); desktop browsers stay in desktop mode and the user's own Mobile/Desktop toggle still takes priority. - Fixed not being able to reorder swimlanes and lists by dragging their drag handle on touch devices. The new touch-scroll helper was hijacking touches that started on a drag handle; `.handle` / `.ui-sortable-handle` elements are now excluded from touch-scrolling so dragging the handle reorders as expected. - Fixed a card duplicating into two cards when it was dragged by its title-row drag handle while its Card Details panel was open. The card sortable in `client/components/lists/list.js` was re-initialized on every list re-render without first destroying the previous instance, so two `stop` handlers fired per drag. It now destroys any existing sortable before re-initializing, the same guard already used for swimlanes. Attachment storage: - Added configurable attachment storage backends in the admin panel: choose the default save storage and store attachments on the local filesystem, GridFS, or cloud object storage — S3-compatible (AWS S3, MinIO, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces), Azure Blob Storage, or Google Cloud Storage — via the `@tweedegolf/storage-abstraction` adapters (new `models/lib/cloudStorage.js`). Includes a "Test connection" action and English translations for the new settings. - Added a server-side bulk attachment move (new `server/attachmentBulkMove.js` and `models/attachmentBulkMoveStatus.js`) that moves all attachments from one storage backend to another as a background job whose progress survives the admin navigating away from or closing the page. Thanks to xet7.
10 lines
433 B
JavaScript
10 lines
433 B
JavaScript
import { Mongo } from 'meteor/mongo';
|
|
|
|
// Singleton-style collection holding the progress of the server-side bulk
|
|
// attachment move job. Because the job runs on the server, its progress
|
|
// survives the admin navigating away from (or closing) the Move Attachment
|
|
// page and is shown again when they return.
|
|
const AttachmentBulkMoveStatus = new Mongo.Collection('attachmentBulkMoveStatus');
|
|
|
|
export default AttachmentBulkMoveStatus;
|