X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-ui-debug.js;h=8e4d04d75489b506223c9b0944916d36aa35661c;hb=84e0c18dcdef720796deb7252c09d3fc5f7d04e4;hp=7099b8c94e7690c3739dec790e3a36a58ae51fa4;hpb=d8d46460033881e248c734f400fc135d5b5c8ce6;p=roojs1 diff --git a/roojs-ui-debug.js b/roojs-ui-debug.js index 7099b8c94e..8e4d04d754 100644 --- a/roojs-ui-debug.js +++ b/roojs-ui-debug.js @@ -21862,6 +21862,33 @@ Roo.apply(Roo.htmleditor.FilterBlock.prototype, }); +/** + * @class Roo.htmleditor.FilterAttributes + * clean attributes and styles including http:// etc.. in attribute + * @constructor +* Run a new Attribute Filter +* @param {Object} config Configuration options + */ +Roo.htmleditor.FilterFileWarning = function(cfg) +{ + + var atag = cfg.node.getElementsByTagName('a'); + for(var i =0; i < atags.length;i++) { + var str = '' + atags.item(i).getAttribute('href'); + if (str.match(/^file:/)) { + throw new Exception ("got file url"); + } + } + // less likely + atag = cfg.node.getElementsByTagName('img'); + for(var i =0; i < atags.length;i++) { + var str = '' + atags.item(i).getAttribute('src'); + if (str.match(/^file:/)) { + throw new Exception ("got file url"); + } + } +} + /*** * This is based loosely on tinymce * @class Roo.htmleditor.TidySerializer @@ -23536,7 +23563,6 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { store : { xtype : 'SimpleStore', data : [ - ['auto'], ['50%'], ['80%'], ['100%'] @@ -23680,7 +23706,7 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { var ret = { tag: 'figure', 'data-block' : 'Figure', - + 'data-width' : this.width, contenteditable : 'false', style : { @@ -23707,9 +23733,9 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { fontSize : '16px', lineHeight : '24px', display : this.caption_display, - maxWidth : this.width + ' !important', + maxWidth : (this.align == 'center' ? this.width : '100%' ) + ' !important', margin: m, - width: this.width + width: this.align == 'center' ? this.width : '100%' }, @@ -23754,11 +23780,14 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { this.align = this.getVal(node, 'figure', 'align'); var figcaption = this.getVal(node, 'figcaption', false); - this.caption = this.getVal(figcaption, 'i', 'html'); + 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, 'figcaption', 'style', 'width'); + this.width = this.getVal(node, true, 'data-width'); //this.margin = this.getVal(node, 'figure', 'style', 'margin'); }, @@ -25371,7 +25400,9 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { //Roo.log("HtmlEditorCore:syncValue (EDITOR->TEXT)"); if(this.initialized){ - this.undoManager.addEvent(); + if (this.undoManager) { + this.undoManager.addEvent(); + } var bd = (this.doc.body || this.doc.documentElement); @@ -25602,7 +25633,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { var parser = new Roo.rtf.Parser(cd.getData('text/rtf')); images = parser.doc ? parser.doc.getElementsByType('pict') : []; } - Roo.log(images); + //Roo.log(images); //Roo.log(imgs); // fixme.. images = images.filter(function(g) { return !g.path.match(/^rtf\/(head|pgdsctbl|listtable|footerf)/); }) // ignore headers/footers etc. @@ -25636,7 +25667,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { new Roo.htmleditor.FilterStyleToTag({ node : d }); new Roo.htmleditor.FilterAttributes({ node : d, - attrib_white : ['href', 'src', 'name', 'align', 'colspan', 'rowspan', 'data-display'], + attrib_white : ['href', 'src', 'name', 'align', 'colspan', 'rowspan', 'data-display', 'data-width'], attrib_clean : ['href', 'src' ] }); new Roo.htmleditor.FilterBlack({ node : d, tag : this.black}); @@ -25645,6 +25676,9 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { new Roo.htmleditor.FilterParagraph({ node : d }); new Roo.htmleditor.FilterSpan({ node : d }); new Roo.htmleditor.FilterLongBr({ node : d }); + new Roo.htmleditor.FilterComment({ node : d }); + + } if (this.enableBlocks) { @@ -25666,6 +25700,11 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { Roo.htmleditor.Block.initAll(this.doc.body); } + try { + new Roo.htmleditor.FilterFileWarning({ node : d }); + } catch(e) { + Roo.MessageBox.alert("Invalid URLS in content", "The pasted Content contains file:// URLS - you probably want to check all the links in this file"); + } e.preventDefault(); return false;