switchTo = require('plugins/core/switch'),
lists = require('plugins/core/lists'),
plugin = {name: 'core', actions: [], canvas: {}, documentExtension: {textNode: {}}},
- Dialog = require('views/dialog/dialog');
+ Dialog = require('views/dialog/dialog'),
+ canvasElements = require('plugins/core/canvasElements');
+
plugin.documentExtension.textNode.transformations = {
executeButtonText: gettext('Apply'),
cancelButtonText: gettext('Cancel'),
fields: [
- {label: gettext('Link'), name: 'href', type: 'input'}
+ {label: gettext('Link'), name: 'href', type: 'input',
+ prePasteHandler: function(text) {
+ return params.fragment.document.getLinkForUrl(text);
+ }.bind(this)
+ }
]
}),
action = this;
dialog.on('execute', function(event) {
doc.transaction(function() {
var span = action.params.fragment.startNode.parent().wrapText({
- _with: {tagName: 'span', attrs: {'class': 'link'}},
+ _with: {tagName: 'span', attrs: {'class': 'link', href: event.formData.href }},
offsetStart: params.fragment.startOffset,
offsetEnd: params.fragment.endOffset,
textNodeIdx: [params.fragment.startNode.getIndex(), params.fragment.endNode.getIndex()]
}),
doc = params.fragment.document;
- span.setAttr('href', event.formData.href);
event.success();
return doc.createFragment(doc.CaretFragment, {node: span.contents()[0], offset:0});
}, {
templates.actions[0].params.template.options = config.templates;
};
+plugin.canvasElements = canvasElements;
+
return plugin;
});
\ No newline at end of file