X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fhtmleditor%2FBlockFigure.js;h=530ff6e75de381dd58ac03468bc2bcbf76b8745c;hb=bea67c903044a64d1e9fc90aa2ab9eaae2e9a836;hp=0cc0e7a00bf287c4882ce9c9b78195ea8cbf4e10;hpb=61c726d90ac8dc8f5c38582448500c515bb8c5c6;p=roojs1 diff --git a/Roo/htmleditor/BlockFigure.js b/Roo/htmleditor/BlockFigure.js index 0cc0e7a00b..530ff6e75d 100644 --- a/Roo/htmleditor/BlockFigure.js +++ b/Roo/htmleditor/BlockFigure.js @@ -179,6 +179,7 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { data : [ ['auto'], ['50%'], + ['80%'], ['100%'] ], fields : [ 'val'], @@ -233,7 +234,10 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { pressed : false, enableToggle : true, setValue : function(v) { - this.toggle(v == 'block' ? false : true); + // this trigger toggle. + + this.setText(v ? "Hide Caption" : "Show Caption"); + this.setPressed(v != 'block'); }, listeners : { toggle: function (btn, state) @@ -261,18 +265,18 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { var d = document.createElement('div'); d.innerHTML = this.caption; - var m = this.width == '50%' && this.align == 'center' ? '0 auto' : 0; + var m = this.width != '100%' && this.align == 'center' ? '0 auto' : 0; + var iw = this.align == 'center' ? this.width : '100%'; var img = { tag : 'img', contenteditable : 'false', src : this.image_src, alt : d.innerText.replace(/\n/g, " ").replace(/\s+/g, ' ').trim(), // removeHTML and reduce spaces.. style: { - width : 'auto', - 'max-width': '100%', - margin : '0px' - + width : iw, + maxWidth : iw + ' !important', // this is not getting rendered? + margin : m } }; @@ -310,20 +314,24 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { ] }; } + // we remove caption totally if its hidden... - will delete data.. but otherwise we end up with fake caption + var captionhtml = this.caption_display == 'none' ? '' : (this.caption.length ? this.caption : "Caption"); - var captionhtml = this.caption_display == 'hidden' ? this.caption : (this.caption.length ? this.caption : "Caption"); - - return { + + var ret = { tag: 'figure', 'data-block' : 'Figure', + contenteditable : 'false', + style : { display: 'block', float : this.align , - 'max-width': this.width, - width : 'auto', - margin: m, - padding: '10px' + maxWidth : this.align == 'center' ? '100% !important' : (this.width + ' !important'), + width : this.align == 'center' ? '100%' : this.width, + margin: '0px', + padding: this.align == 'center' ? '0' : '0 10px' , + textAlign : this.align // seems to work for email.. }, @@ -334,27 +342,44 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { { tag: 'figcaption', - + 'data-display' : this.caption_display, style : { - 'text-align': 'left', - 'margin-top' : '16px', - 'font-size' : '16px', - 'line-height' : '24px', - display : this.caption_display + textAlign : 'left', + fontSize : '16px', + lineHeight : '24px', + display : this.caption_display, + maxWidth : (this.align == 'center' ? this.width : 100% ) + ' !important', + margin: m, + width: this.align == 'center' ? this.width : 100%, + + }, cls : this.cls.length > 0 ? (this.cls + '-thumbnail' ) : '', cn : [ { - // we can not rely on yahoo syndication to use CSS elements - so have to use '' to encase stuff. - tag : 'i', - contenteditable : true, - html : captionhtml + tag: 'div', + style : { + marginTop : '16px', + textAlign : 'left' + }, + align: 'left', + cn : [ + { + // we can not rely on yahoo syndication to use CSS elements - so have to use '' to encase stuff. + tag : 'i', + contenteditable : true, + html : captionhtml + } + + ] } + ] } ] }; + return ret; }, @@ -365,16 +390,19 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { this.cls = this.getVal(node, 'div', 'class'); this.href = this.getVal(node, 'a', 'href'); + this.image_src = this.getVal(node, 'img', 'src'); this.align = this.getVal(node, 'figure', 'align'); - this.caption = this.getVal(node, 'figcaption', 'html'); - // remove ' - if (this.caption.trim().match(/^]*>/i)) { - this.caption = this.caption.trim().replace(/^]*>/i, '').replace(/^<\/i>$/i, ''); + var figcaption = this.getVal(node, 'figcaption', false); + if (figcaption !== '') { + this.caption = this.getVal(figcaption, 'i', 'html'); } + + + this.caption_display = this.getVal(node, 'figcaption', 'data-display'); //this.text_align = this.getVal(node, 'figcaption', 'style','text-align'); - this.width = this.getVal(node, 'figure', 'style', 'max-width'); + this.width = this.getVal(node, 'figcaption', 'style', 'width'); //this.margin = this.getVal(node, 'figure', 'style', 'margin'); },