← Back to team overview

mahara-contributors team mailing list archive

[Bug 1441422] [NEW] Realtime collaborative page editing

 

Public bug reported:

People would like to be able to collaboratively edit Mahara pages in
realtime. I was discussing this with Robert and it actually might not be
that hard to do, at least for group pages (which are already
collaboratively editable). You'd just have to take things at a block-by-
block basis.

1. When you're editing a group page, we use Ajax to periodically poll
the server to determine if someone else is also editing the page.

2. If someone else is editing the page, we show them listed at the top
of the page as a collaborative editor. (Maybe some kind of chat system
to go along side this?) You also poll more frequently.

3. When there are updates to the page, made by someone else, we load
them onto the page immediately.

4. If someone else is editing a block, we "lock" that block. (In the
long run we could have a flag for some types of blocks to be multi-user
collaborative.)

The tricky part here is that you need to be able to track and update (or lock) all the ways that a page can be updated:
 - reloading block contents
 - adding blocks
 - deleting blocks
 - moving blocks

And also page metadata...
 - changing page layout
 - changing page title/description/collection/sharing/tags...

It would probably be easiest to lock the page metadata while someone is
editing the page. Also, what if someone opens a block for editing, and
then they close their window, or their browser crashes? We need the
block to automatically unlock. Perhaps a "keepalive" ping once per
minute.

** Affects: mahara
     Importance: Wishlist
         Status: Confirmed

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1441422

Title:
  Realtime collaborative page editing

Status in Mahara ePortfolio:
  Confirmed

Bug description:
  People would like to be able to collaboratively edit Mahara pages in
  realtime. I was discussing this with Robert and it actually might not
  be that hard to do, at least for group pages (which are already
  collaboratively editable). You'd just have to take things at a block-
  by-block basis.

  1. When you're editing a group page, we use Ajax to periodically poll
  the server to determine if someone else is also editing the page.

  2. If someone else is editing the page, we show them listed at the top
  of the page as a collaborative editor. (Maybe some kind of chat system
  to go along side this?) You also poll more frequently.

  3. When there are updates to the page, made by someone else, we load
  them onto the page immediately.

  4. If someone else is editing a block, we "lock" that block. (In the
  long run we could have a flag for some types of blocks to be multi-
  user collaborative.)

  The tricky part here is that you need to be able to track and update (or lock) all the ways that a page can be updated:
   - reloading block contents
   - adding blocks
   - deleting blocks
   - moving blocks

  And also page metadata...
   - changing page layout
   - changing page title/description/collection/sharing/tags...

  It would probably be easiest to lock the page metadata while someone
  is editing the page. Also, what if someone opens a block for editing,
  and then they close their window, or their browser crashes? We need
  the block to automatically unlock. Perhaps a "keepalive" ping once per
  minute.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1441422/+subscriptions


Follow ups

References