Since the times of MS Word in the 90s, we take it for granted that we have the undo and redo feature in the software we use. We kind of take it for granted. However, it’s often not the case with the applications that have to do with website creation and management.
For instance, in WordPress, you have the undo-redo feature for text edits. On the other hand, when it comes to style changes or other edits, it’s often missing. This month, MotoCMS introduced the vital undo and redo feature with its 3.1.6 release. So, let’s dig into the backstory and the types of undo-redo and its implementation in the new MotoCMS release.
The Making Of Undo and Redo
In fact, the story of such a simple function of software as undo redo reaches decades back to the times when there was no Internet. Its inception dates back to 1968, when FRESS (The File Retrieval and Editing SyStem), developed at Brown University, introduced a simple one-step undo command. Most noteworthy, FRESS used a light-pen for edits instead of the customary mouse. To ‘click’ it, the user had to press a foot-pedal.
This picture features a Brown University student working with FRESS, the first software to introduce the undo command (1969).
Next, this function reoccurred in the Bravo WYSIWYG document preparation program in 1974. Developed by XEROX PARC, this software was the first one to assign the shortcut CTRL + Z to the undo command. Now, this shortcut is the most popular one for undo command on Windows PCs, being Cmnd + Z on Macs accordingly.
The 80s saw the rise of undo and redo introduction. Many text editors embraced it under different names, such as ‘unerase’ and ‘undelete’, etc. It was also the time when multi-level undo commands came into being and raised to prominence (the ones you can see in Photoshop nowadays). This way, we became habituated to traveling back in time for a couple of moments and reversing our recent actions.
Undo and Redo Types and Models
From a commonplace user perspective, undo seems to be a simple thing. Just click it and discard the latest edit you made. Press the redo command and you’ll undo your undo (pardon the tautology). In fact, it isn’t that simple from the developer’s perspective. There are different ways undo and redo can work, and choosing one of them is the task that developers face sooner or later.
First of all, there are two models undo and redo commands can work:
In line with the linear model, the actions are undone/redone one by one. So, to reverse the edit that precedes two subsequent edits, you have to reverse the three latest edits one by one. All in all, this is the most popular undo model that’s frequented in a number of software applications.
Next, the less prevalent non-linear model lets you pick the action you want to reverse from your history of edits. It’s the undo that you’re familiar with if you’re an avid Photoshop user. Moreover, Photoshop even lets you create non-linear histories of changes that let you build different branches of edits.
It’s not hard to get that non-linear model is more resource-demanding and is hard to implement. For developers, it’s rocket science as they have to keep testing the non-linear undos of different types for ages. It’s like in science fiction when the main character changes something in the past, the future may change unpredictably. And that’s definitely not what you, the end user, want.
Secondly, when there is a number of users editing a single document simultaneously (e.g. Google Docs), multi-user undo and redo commands come into being. In this case, undo can either revert the last change done by any user (global multi-user undo) or the last change done by the current user (local multi-user undo).
Thirdly, comes the ‘flip undo’ model. This model gets rid of redo command completely. It just undoes a single action. When clicked one more time, it undoes the undo (so, actually, works as redo). This is a simple model that allows you to go back and forth with the last edit made.
As you can see, there are different undo redo models, and some of them require a lot of testing and coding by developers. As a matter of fact, many software developers do not think of undo redo implementation during the initial stages of software development. So, when they come to implementing it later on, the task becomes even more complicated. As a result, just the most tech-savvy developers can pull it off.
Undo and Redo in MotoCMS 3.1.6 Release
Thanks to the ardent work and unconventional approach of MotoCMS developers, MotoCMS 3.1.6 greets you with the fully-functional undo-redo functionality. You can now freely undo your actions if you don’t like the result you get.
Fortunately, with the MotoCMS undo and redo you’re not limited to reverting one action. You can feel free to undo two, five or even ten last edits to get back to the needed stage and go in another direction. At the same time, if you changed your mind, you can always redo the changes with the redo command.
Undo and redo commands are vital for working with text documents and graphic files the way we’re used to. However, we often take this functionality for granted and don’t even think that undo-redo functionality is not that simple in terms of implementation. Fortunately, with its 3.1.6 release, MotoCMS brings you this much-needed functionality and provides for multiple linear undos and redos. We hope you enjoy this freedom of traveling in time when editing your MotoCMS 3 theme.
What’s more, don’t forget to learn what the other improvements that MotoCMS 3.1.6 release has on board are. Check out the release notes to learn more (click on ‘What’s new in Moto CMS 3.1.6’ there).
If you enjoyed reading this article, we’ve got a lot of similar interesting reads to check out!
Allison is a professional content marketer and an inspired author. Marketing manager by day and a writer by night, she is creating many articles on business, marketing, design and web development. She loves working with website builders and CMS, and sharing her experience with the readers. Follow her on LinkedIn and Facebook.
Thank you for subscribing to MotoCMS blog!
This email is already in use.
Something went wrong. We are fixing this. Try a bit later.