Warn before overwriting page content

0 Likes
(1)

I am a professor who teaches and researches about software engineering, and I often co-teach courses. This leads to problems because Canvas does not warn if multiple people are editing the same content (e.g., the same page) at the same time and overwrite each other's edits.

For instance, consider the following sequence of events:

  1. At 10:00 am Pacific time, person A starts editing page P.
  2. At 10:10 am Pacific time, person B starts editing the same page. P.
  3. At 10:20 am Pacific time, person A saves their changes to P.
  4. At 10:30 am Pacific time, person B saves their changes to P. 

The result is that B's changes will overwrite A's changes without any warning. I cannot speak to how irritated I and my colleagues been when that has happened. It causes confusion, leads to inconsistencies, and loses potentially valuable content. And I have no idea how often this might have happened!

Here's what I'd like to see, informed by the Pages API https://canvas.instructure.com/doc/api/pages.html:

  1. Assume that the Page object for page P has version_id == 7.
  2. At 10:00 am Pacific time, person A starts editing page P with version_id == 7.
  3. At 10:10 am Pacific time, person B starts editing the same page. P with version_id == 7.
  4. At 10:20 am Pacific time, person A tries to save their changes to P. This causes their Canvas session to first check the current version_id of page P in the cloud. It is still 7, so the changes get saved. The version_id of page P in the cloud is now 8.
  5. At 10:30 am Pacific time, person B tries to save their changes to P. This causes their Canvas session to check the current version_id of page P in the cloud. It is now 8, which is different from what it was when B started their editing session. Canvas warns B that person A (available in Page P's object's last_edited_by person value) saved changes at 10:20 am Pacific time (available in Page P's object's updated_at value) that will be overwritten if B saves their changes. Person B may choose to cancel their edits (I'd first copy the changes to file on my computer so I could compare them with the new version), or overwrite A's edits. 

This change would dramatically reduce the likelihood of changes silently being lost.

Based upon my 20+ years in software development, it seems like a fairly low-cost and low-risk change to make.

2 Comments
Stef_retired
Instructure Alumni
Instructure Alumni
Status changed to: Open
 
ProductPanda
Instructure
Instructure
Status changed to: Archived
Comments from Instructure

As part of the new Ideas & Themes process, all ideas in Idea Conversations were reviewed by the Product Team. Any Idea that was associated with an identified theme was moved to the new Idea & Themes space. Any Idea that was not part of the move is being marked as Archived. This will preserve the history of the conversations while also letting Community members know that Instructure will not explore the request at this time.