Skip to content

Releases: jperelli/redmine_realtime_editor

v0.2.0 — Monaco Editor support

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 11 Sep 22:50
11d9230

Features

  • Support for the Monaco Editor plugin: when it replaces a textarea the session binds to the Monaco model (local edits, remote edits applied as model edits, remote carets and selections as decorations, read-only lock after a shared comment is posted). Users on Monaco and on the plain textarea co-edit the same text. Undo/redo in Monaco (shortcuts, command palette, API) go through a Yjs UndoManager, so they only revert the user's own edits and never the other users' text.

Install / upgrade

cd /path/to/redmine/plugins
git clone https://github.com/jperelli/redmine_realtime_editor.git   # or: cd redmine_realtime_editor && git checkout v0.2.0
cd .. && bundle exec rake redmine:plugins:migrate RAILS_ENV=production

then restart Redmine. Full changelog: https://github.com/jperelli/redmine_realtime_editor/blob/main/CHANGELOG.md

v0.1.0

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 09 Sep 15:41

First release. Google-Docs style co-editing of issues, comments and wiki pages with no extra infrastructure: browsers synchronize through Redmine itself over HTTP polling, no websocket server.

Demo

Features

  • Collaborative real-time editing (Yjs CRDT) of issue descriptions, issue notes, edited journal notes and wiki pages
  • Transport over plain HTTP polling to the Redmine app itself, optional long polling; no websocket server or infrastructure change
  • Every other field of the issue edit form (status, assignee, dates, custom fields...) is shared as well: remote changes are applied to the native controls with a "changed by" mark, and survive Redmine's own form refresh
  • Remote carets and selections of the other editors drawn over the textarea, one colour per user with a name label
  • Presence bar under each shared textarea: who else is editing, who is typing, live/offline state
  • Shared drafts survive a page reload for a configurable time and are discarded after everybody leaves
  • Saving from a co-edited issue form or wiki page does not trigger Redmine's stale-object conflict for the other editors; changes made outside a collaborative form still do
  • New comments private (default, presence only) or shared; when a shared comment is posted the other editors get a banner naming the author and the notes box is locked until they reload
  • Plugin settings: fields to share, notes mode, poll periods, long polling hold, draft lifetime, compaction threshold

Compatibility

Redmine 5.1, 6.0, 6.1 and 7.0 (tested in CI). No Node.js needed to install: the Yjs bundle is committed.

Install

cd /path/to/redmine/plugins
git clone --branch v0.1.0 https://github.com/jperelli/redmine_realtime_editor.git
cd /path/to/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Plugin directory: https://www.redmine.org/plugins/redmine_realtime_editor