changeLink: function(e) {
var el = this,
doc = this.wlxmlNode.document,
+ offset = el.canvas.getSelection().toDocumentFragment().offset,
dialog = Dialog.create({
title: gettext('Edit link'),
executeButtonText: gettext('Apply'),
metadata: {
description: gettext('Edit link'),
fragment: doc.createFragment(doc.CaretFragment, {node: el.wlxmlNode.contents()[0], offset:0})
+ },
+ success: function() {
+ el.canvas.select(doc.createFragment(doc.CaretFragment, {node: el.wlxmlNode.contents()[0], offset:offset}));
}
});
});
doc = this.wlxmlNode.document;
el.wlxmlNode.document.transaction(function() {
- el.wlxmlNode.unwrapContent();
+ var f = el.canvas.getSelection().toDocumentFragment(),
+ prefLen = 0,
+ ret;
+
+ if(el.wlxmlNode.isPrecededByTextNode()) {
+ prefLen = el.wlxmlNode.prev().getText().length;
+ }
+
+ ret = el.wlxmlNode.unwrapContent();
+ return doc.createFragment(doc.CaretFragment, {node: ret.element1, offset: prefLen + f.offset});
}, {
metadata: {
description: gettext('Remove link'),
fragment: doc.createFragment(doc.CaretFragment, {node: el.wlxmlNode.contents()[0], offset:0})
+ },
+ success: function(ret) {
+ el.canvas.select(ret);
}
});
},