editor: Missing transactions metadata in canvas keyboard handler
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Tue, 22 Apr 2014 13:28:21 +0000 (15:28 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 23 Apr 2014 11:05:06 +0000 (13:05 +0200)
src/editor/modules/documentCanvas/canvas/keyboard.js

index 9be3dae..fc8be1e 100644 (file)
@@ -44,20 +44,27 @@ handlers.push({key: KEYS.ENTER,
         event.preventDefault();
         var cursor = canvas.getCursor(),
             position = cursor.getPosition(),
-            element = position.element,
-            added;
+            element = position.element;
 
         if(Object.keys(cursor.getPosition()).length === 0) {
             var currentElement = canvas.getCurrentNodeElement();
             if(currentElement) {
-                canvas.wlxmlDocument.startTransaction(gettext('Splitting text'));
-                added = currentElement.wlxmlNode.after({
-                    tagName: currentElement.getWlxmlTag() || 'div',
-                    attrs: {'class': currentElement.getWlxmlClass() || 'p'}
+                canvas.wlxmlDocument.transaction(function() {
+                    var added = currentElement.wlxmlNode.after({
+                        tagName: currentElement.getWlxmlTag() || 'div',
+                        attrs: {'class': currentElement.getWlxmlClass() || 'p'}
+                    });
+                    added.append({text:''});
+                    return added;
+                }, {
+                    metadata: {
+                        description: gettext('Splitting text')
+                    },
+                    success: function(ret) {
+                        canvas.setCurrentElement(utils.findCanvasElement(ret), {caretTo: 'start'});
+                    }
                 });
-                added.append({text:''});
-                canvas.wlxmlDocument.endTransaction();
-                canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'});
+
             }
             return;
         }
@@ -68,13 +75,20 @@ handlers.push({key: KEYS.ENTER,
                     element = element.parent();
                 }
 
-                canvas.wlxmlDocument.startTransaction(gettext('Splitting text'));
-                added = element.wlxmlNode.after(
-                    {tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
-                );
-                added.append({text: ''});
-                canvas.wlxmlDocument.endTransaction();
-                canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'});
+                canvas.wlxmlDocument.transaction(function() {
+                    var added = element.wlxmlNode.after(
+                        {tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
+                    );
+                    added.append({text: ''});
+                    return added;
+                }, {
+                    metadata: {
+                        description: gettext('Splitting text')
+                    },
+                    success: function(ret) {
+                        canvas.setCurrentElement(utils.findCanvasElement(ret), {caretTo: 'start'});
+                    }
+                });
 
             } else {
 
@@ -105,7 +119,11 @@ handlers.push({key: KEYS.ENTER,
 
                 node.document.transaction(function() {
                     result = position.element.wlxmlNode.breakContent({offset: position.offset});
-                }, this, gettext('Splitting text'));
+                }, {
+                    metadata: {
+                        description: gettext('Splitting text')
+                    }
+                });
 
                 if(result.emptyText) {
                     goto = result.emptyText;
@@ -284,6 +302,10 @@ handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE],
                 }
                 event.preventDefault();
             }
+        }, {
+            metadata: {
+                description: gettext('Remove text')
+            }
         });
     }
 });