X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/deeb9be02fa983184ddf5fcc14d01f984079783d..796338e669626012da93ebea5ec7afa482a70ed7:/src/editor/plugins/core/links/linkElement.js?ds=sidebyside diff --git a/src/editor/plugins/core/links/linkElement.js b/src/editor/plugins/core/links/linkElement.js index 1214e95..9e4a935 100644 --- a/src/editor/plugins/core/links/linkElement.js +++ b/src/editor/plugins/core/links/linkElement.js @@ -17,7 +17,10 @@ _.extend(linkElement, { genericElement.init.call(this); _.bindAll(this, 'changeLink', 'deleteLink'); - this.box = $(_.template(boxTemplate)({href: this.wlxmlNode.getAttr('href')})); + var linkText = this.wlxmlNode.getAttr('href') || '', + linkUrl = this.getUrl(linkText); + + this.box = $(_.template(boxTemplate)({text: linkText, url: linkUrl})); this.box.find('.change').on('click', this.changeLink); this.box.find('.delete').on('click', this.deleteLink); this.box.hide(); @@ -30,7 +33,7 @@ _.extend(linkElement, { if(event.meta.attr === 'href') { var link = this.box.find('[link]'); link.text(event.meta.newVal); - link.attr('href', event.meta.newVal); + link.attr('href', this.getUrl(event.meta.newVal)); } }, @@ -41,7 +44,11 @@ _.extend(linkElement, { executeButtonText: gettext('Apply'), cancelButtonText: gettext('Cancel'), fields: [ - {label: gettext('Link'), name: 'href', type: 'input', initialValue: el.wlxmlNode.getAttr('href')} + {label: gettext('Link'), name: 'href', type: 'input', initialValue: el.wlxmlNode.getAttr('href'), + prePasteHandler: function(text) { + return this.wlxmlNode.document.getLinkForUrl(text); + }.bind(this) + } ] }); e.preventDefault(); @@ -69,6 +76,14 @@ _.extend(linkElement, { description: gettext('Remove link') } }); + }, + + getUrl: function(link) { + var pattern = /^[a-z]*:\/\//g; + if(!pattern.test(link)) { + link = 'http://' + link; + } + return this.wlxmlNode.document.getUrlForLink(link); } });