node2 = parent2.wlxmlNode,
doc = node1.document;
- doc.createList({node1: node1, node2: node2});
- canvas.setCurrentElement(selectionFocus.element, {caretTo: selectionFocus.offset});
+ doc.transaction(function() {
+ doc.createList({node1: node1, node2: node2});
+ }, {
+ success: function() {
+ canvas.setCurrentElement(selectionFocus.element, {caretTo: selectionFocus.offset});
+ }
+ });
});
commands.register('toggle-grid', function(canvas, params) {
var insertNode = function(insertion, callback) {
var doc = canvas.wlxmlDocument,
- node, metadata, creator, dialog;
+ metadata, creator, dialog;
var execCallback = function(node) {
if(callback) {
if(params.wlxmlTag === 'aside' && params.wlxmlClass === 'comment') {
doc.transaction(function() {
- node = insertion();
+ var node = insertion();
if(user) {
creator = user.name;
if(user.email) {
metadata = node.getMetadata();
metadata.add({key: 'creator', value: creator});
metadata.add({key: 'date', value: datetime.currentStrfmt()});
+ return node;
+ }, {
+ success: execCallback
});
- execCallback(node);
} else if(params.wlxmlClass === 'link') {
dialog = Dialog.create({
title: gettext('Create link'),
});
dialog.on('execute', function(event) {
doc.transaction(function() {
- node = insertion();
+ var node = insertion();
node.setAttr('href', event.formData.href);
event.success();
+ return node;
+ }, {
+ success: execCallback
});
- execCallback(node);
});
dialog.show();
} else {
doc.transaction(function() {
- node = insertion();
- });
- execCallback(node);
+ return insertion();
+ }, {success: execCallback});
}
};