roojs-ui.js
[roojs1] / Roo / htmleditor / BlockFigure.js
index 08674f0..723f867 100644 (file)
@@ -32,6 +32,9 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
     caption : '',
     caption_display : 'block',
     width : '100%',
+    cls : '',
+    href: '',
+    video_url : '',
     
     // margin: '2%', not used
     
@@ -62,6 +65,37 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
                 text : "Source: ",
                 xns : rooui.Toolbar  //Boostrap?
             },
+            {
+                xtype : 'Button',
+                text: 'Edit Src',
+                name : 'image_src',
+                
+                listeners : {
+                    click: function (btn, state)
+                    {
+                        
+                        
+                        Roo.MessageBox.show({
+                            title : "Image Source URL",
+                            msg : "Enter the url for the image",
+                            buttons: this.OKCANCEL,
+                            fn: function(val){
+                                block().image_src = val;
+                                block().updateElement();
+                                syncValue();
+                                toolbar.editorcore.onEditorEvent();
+                            },
+                            minWidth:250,
+                            prompt:true,
+                            //multiline: multiline,
+                            modal : true,
+                            value : block().image_src
+                        });
+                    }
+                },
+                xns : rooui.Toolbar
+            },
+         
             {
                 xtype : 'TextField',
                 allowBlank : false,
@@ -200,8 +234,9 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
         
         var img =   {
             tag : 'img',
+            contenteditable : 'false',
             src : this.image_src,
-            alt : d.innerText.replace(/\n/g, " "), // removeHTML..
+            alt : d.innerText.replace(/\n/g, " ").replace(/\s+/g, ' ').trim(), // removeHTML and reduce spaces..
             style: {
                 width : 'auto',
                 'max-width': '100%',
@@ -218,10 +253,27 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
                 '</div>',
         */
                 
-        if (this.href) {
+        if (this.href.length > 0) {
             img = {
                 tag : 'a',
                 href: this.href,
+                contenteditable : 'true',
+                cn : [
+                    img
+                ]
+            };
+        }
+        
+        
+        if (this.video_url.length > 0) {
+            img = {
+                tag : 'div',
+                cls : this.cls,
+                frameborder : 0,
+                allowfullscreen : true,
+                width : 420,  // these are for video tricks - that we replace the outer
+                height : 315,
+                src : this.video_url,
                 cn : [
                     img
                 ]
@@ -241,10 +293,8 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
                 padding: '10px'
                 
             },
-            frameborder : 0,
-            allowfullscreen : true,
-            src : this.video_src,
-            cls : this.cls,
+           
+            
             align : this.align,
             cn : [
                 img,
@@ -260,7 +310,7 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
                         'font-style': 'italic',
                         display : this.caption_display
                     },
-                    cls : this.cls + '-thumbnail',
+                    cls : this.cls.length > 0 ? (this.cls  + '-thumbnail' ) : '',
                     html : this.caption
                     
                 }
@@ -272,8 +322,8 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, {
     readElement : function(node)
     {
         // this should not really come from the link...
-        this.video_src = this.getVal(node, false, 'src');
-        this.cls = this.getVal(node, false, 'class');
+        this.video_url = this.getVal(node, 'div', 'src');
+        this.cls = this.getVal(node, 'div', 'class');
         this.href = this.getVal(node, 'a', 'href');
         
         this.image_src = this.getVal(node, 'img', 'src');