editor: canvas links fix
[fnpeditor.git] / src / editor / plugins / core / links / linkElement.js
index 1214e95..8a9edd7 100644 (file)
@@ -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));
         }
     },
 
@@ -69,6 +72,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);
     }
 });