From 105a4e9cdd9d1dffdff6411e7b7e83ff507c68e6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Thu, 10 Apr 2014 16:43:51 +0200 Subject: [PATCH 1/1] editor: undo/redo action description contains information on what would be undone/redone --- src/editor/modules/documentCanvas/canvas/canvas.js | 10 ++++++++-- src/editor/modules/metadataEditor/metadataEditor.js | 13 ++++++++++--- src/editor/plugins/core/core.js | 3 +++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/editor/modules/documentCanvas/canvas/canvas.js b/src/editor/modules/documentCanvas/canvas/canvas.js index 96e3bea..d58ea7b 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.js @@ -10,7 +10,7 @@ define([ ], function($, _, Backbone, logging, documentElement, keyboard, utils, wlxmlListener) { 'use strict'; -/* global document:false, window:false, Node:false */ +/* global document:false, window:false, Node:false, gettext */ var logger = logging.getLogger('canvas'); @@ -42,7 +42,13 @@ $.extend(TextHandler.prototype, { }, setText: function(text, node) { //this.canvas.wlxmlDocument.transform('setText', {node:node, text: text}); - node.setText(text); + node.document.transaction(function() { + node.setText(text); + }, { + metadata:{ + description: gettext('Changing text') + } + }); } diff --git a/src/editor/modules/metadataEditor/metadataEditor.js b/src/editor/modules/metadataEditor/metadataEditor.js index b9021bc..1088247 100644 --- a/src/editor/modules/metadataEditor/metadataEditor.js +++ b/src/editor/modules/metadataEditor/metadataEditor.js @@ -7,6 +7,7 @@ define([ ], function($, _, mainTemplate, itemTemplate, OpenSelectView) { 'use strict'; +/* globals gettext */ return function(sandbox) { @@ -41,11 +42,15 @@ return function(sandbox) { this.node.find('.rng-module-metadataEditor-addBtn').click(function() { adding = true; - currentNode.getMetadata().add('',''); + currentNode.document.transaction(function() { + currentNode.getMetadata().add('',''); + }, this, gettext('Add metadata row')); }); this.metaTable.on('click', '.rng-visualEditor-metaRemoveBtn', function(e) { - $(e.target).closest('tr').data('row').remove(); + currentNode.document.transaction(function() { + $(e.target).closest('tr').data('row').remove(); + }, this, gettext('Remove metadata row')); }); this.metaTable.on('keydown', '[contenteditable]', function(e) { @@ -70,7 +75,9 @@ return function(sandbox) { row = editable.parents('tr').data('row'), isKey = _.last(editable.attr('class').split('-')) === 'metaItemKey', method = isKey ? 'setKey' : 'setValue'; - row[method](toSet); + row.metadata.node.document.transaction(function() { + row[method](toSet); + }, this, gettext('Metadata edit')); } }, 500)); }, diff --git a/src/editor/plugins/core/core.js b/src/editor/plugins/core/core.js index d0a376d..a27ec9e 100644 --- a/src/editor/plugins/core/core.js +++ b/src/editor/plugins/core/core.js @@ -62,6 +62,9 @@ var undoRedoAction = function(dir) { var allowed = params.document && !!(params.document[dir+'Stack'].length), desc = dir === 'undo' ? gettext('Undo') : gettext('Redo'), descEmpty = dir === 'undo' ? gettext('There is nothing to undo') : gettext('There is nothing to redo'); + if(allowed) { + desc += ': ' + (_.last(params.document[dir+'Stack']).metadata || gettext('unknown operation')); + } return { allowed: allowed, description: allowed ? desc : descEmpty -- 2.20.1