boundries → boundaries
[fnpeditor.git] / src / editor / plugins / core / core.js
index 31ac09d..6cb39e2 100644 (file)
@@ -12,7 +12,8 @@ var _ = require('libs/underscore'),
     Dialog = require('views/dialog/dialog'),
     canvasElements = require('plugins/core/canvasElements'),
     metadataEditor = require('plugins/core/metadataEditor/metadataEditor'),
-    edumed = require('plugins/core/edumed/edumed');
+    edumed = require('plugins/core/edumed/edumed'),
+    add_attachments = require('views/attachments/add_attachments');
 
 
 var exerciseFix = function(newNodes) {
@@ -314,6 +315,13 @@ plugin.documentExtension.documentNode.transformations = {
             }
         });
         return toret;
+    },
+    insertNewNode: function () {
+        var node = this;
+        var newElement = this.document.createDocumentNode({tagName: 'div', attrs: {class: 'p'}});
+        node.after(newElement);
+        newElement.append({text: ''});
+        return newElement;
     }
 };
 
@@ -478,7 +486,7 @@ var createWrapTextAction = function(createParams) {
                 });
             }
 
-            if(params.fragment instanceof params.fragment.TextRangeFragment && params.fragment.hasSiblingBoundries()) {
+            if(params.fragment instanceof params.fragment.TextRangeFragment && params.fragment.hasSiblingBoundaries()) {
                 parent = params.fragment.startNode.parent();
                 if(parent && parent.is(createParams.klass) || parent.isInside(createParams.klass)) {
                     return _.extend(state, {allowed: false});
@@ -521,13 +529,21 @@ var createWrapTextAction = function(createParams) {
 
 
 var createLinkFromSelection = function(callback, params) {
-    var doc = params.fragment.document,
-        dialog = Dialog.create({
+    var fragment = params.fragment,
+        doc = fragment.document,
+        text = fragment.startNode.nativeNode.data.substring(fragment.startOffset, fragment.endOffset),
+        url;
+    if (text.indexOf('//') >= 0 && text.indexOf(' ') < 0) {
+        url = text;
+    } else if (text.substr(0, 4) === 'www.' && text.indexOF(' ') < 0) {
+        url = 'http://' + text;
+    }
+    var dialog = Dialog.create({
             title: gettext('Create link'),
             executeButtonText: gettext('Apply'),
             cancelButtonText: gettext('Cancel'),
             fields: [
-                {label: gettext('Link'), name: 'href', type: 'input',
+                {label: gettext('Link'), name: 'href', type: 'input', initialValue: url || '',
                 prePasteHandler: function(text) {
                                     return params.fragment.document.getLinkForUrl(text);
                                 }.bind(this)
@@ -556,6 +572,7 @@ var createLinkFromSelection = function(callback, params) {
         });
     });
     dialog.show();
+    add_attachments(dialog);
 };
 
 var editLink = function(callback, params) {
@@ -601,7 +618,7 @@ var linkAction = {
         }
 
         if(params.fragment instanceof params.fragment.TextRangeFragment) {
-            if(!params.fragment.hasSiblingBoundries() || params.fragment.startNode.parent().is('link')) {
+            if(!params.fragment.hasSiblingBoundaries() || params.fragment.startNode.parent().is('link')) {
                 return {allowed: false};
             }
             return {