if (self.text === null || self.revision !== data.revision) {
self.text = data.text;
+ $.wiki.undo.push(data.text);
self.revision = data.revision;
self.gallery = data.gallery;
changed = true;
/*
* Set document's text
*/
- setText(text) {
+ setText(text, silent=false) {
if (text == this.text) return;
+ if (!silent) {
+ $.wiki.undo.push(text);
+ }
this.text = text;
this.has_local_changes = true;
}
+ undo() {
+ let ctx = $.wiki.exitContext();
+ this.setText(
+ $.wiki.undo.undo(),
+ true
+ );
+ $.wiki.enterContext(ctx);
+ }
+ redo() {
+ let ctx = $.wiki.exitContext();
+ this.setText(
+ $.wiki.undo.redo(),
+ true
+ );
+ $.wiki.enterContext(ctx);
+ }
+
/*
* Save text back to the server
*/