X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-debug.js;h=279e69f7829bfdf05c19d19e77dfe45a9b3b6575;hb=be2f093265f374154ff7e8bc0612b9e5d3366da9;hp=2828310681e254b09b098fa40c5539b154ecef0a;hpb=e6d9cd3b3b2ea94cbc5346c1b89138553350de3c;p=roojs1 diff --git a/roojs-debug.js b/roojs-debug.js index 2828310681..279e69f782 100644 --- a/roojs-debug.js +++ b/roojs-debug.js @@ -1205,12 +1205,36 @@ document.write(dt.format(Date.patterns.ShortDate)); /** Returns the number of milliseconds between this date and date @param {Date} date (optional) Defaults to now + @param {Date} date (optional) Defaults to now + @param {String} interval A valid date interval enum value (eg. Date.DAY) @return {Number} The diff in milliseconds @member Date getElapsed */ -Date.prototype.getElapsed = function(date) { - return Math.abs((date || new Date()).getTime()-this.getTime()); +Date.prototype.getElapsed = function(date, interval) +{ + date = date || new Date(); + var ret = Math.abs(date.getTime()-this.getTime()); + switch (interval) { + + case Date.SECOND: + return Math.floor(ret / (1000)); + case Date.MINUTE: + return Math.floor(ret / (100*60)); + case Date.HOUR: + return Math.floor(ret / (100*60*60)); + case Date.DAY: + return Math.floor(ret / (100*60*60*24)); + case Date.MONTH: // this does not give exact number...?? + return ((date.format("Y") - this.format("Y")) * 12) + (date.format("m") - this.format("m")); + case Date.YEAR: // this does not give exact number...?? + return (date.format("Y") - this.format("Y")); + + case Date.MILLI: + default: + return ret; + } }; + // was in date file.. @@ -47760,7 +47784,7 @@ Roo.htmleditor.Block.prototype = { * @param {DomElement} node * @param {String} tag - tag to find, eg. IMG ?? might be better to use DomQuery ? - * @param {String} attribute (use html - for contents, or style for using next param as style) + * @param {String} attribute (use html - for contents, style for using next param as style, or false to return the node) * @param {String} style the style property - eg. text-align */ getVal : function(node, tag, attr, style) @@ -47774,6 +47798,9 @@ Roo.htmleditor.Block.prototype = { if (!n) { return ''; } + if (attr === false) { + return n; + } if (attr == 'html') { return n.innerHTML; } @@ -47986,6 +48013,7 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { data : [ ['auto'], ['50%'], + ['80%'], ['100%'] ], fields : [ 'val'], @@ -48068,17 +48096,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 } @@ -48118,20 +48147,22 @@ 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 == 'hidden' ? '' : (this.caption.length ? this.caption : "Caption"); + var captionhtml = this.caption_display == 'none' ? '' : (this.caption.length ? this.caption : "Caption"); return { 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: '10px', + textAlign : this.align // seems to work for email.. }, @@ -48144,20 +48175,36 @@ 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.width + ' !important', + margin: m, + width: this.width + + }, 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 + } + + ] } + ] } @@ -48177,14 +48224,12 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { 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); + 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'); }, @@ -50009,7 +50054,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { var cd = (e.browserEvent.clipboardData || window.clipboardData); // check what type of paste - if it's an image, then handle it differently. - if (cd.files.length > 0) { + if (cd.files && cd.files.length > 0) { // pasting images? var urlAPI = (window.createObjectURL && window) || (window.URL && URL.revokeObjectURL && URL) || @@ -50019,10 +50064,15 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { this.insertAtCursor(''); return false; } - + if (cd.types.indexOf('text/html') < 0 ) { + return false; + } + var images = []; var html = cd.getData('text/html'); // clipboard event - var parser = new Roo.rtf.Parser(cd.getData('text/rtf')); - var images = parser.doc ? parser.doc.getElementsByType('pict') : []; + if (cd.types.indexOf('text/rtf') > -1) { + var parser = new Roo.rtf.Parser(cd.getData('text/rtf')); + images = parser.doc ? parser.doc.getElementsByType('pict') : []; + } Roo.log(images); //Roo.log(imgs); // fixme.. @@ -50057,7 +50107,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'], + attrib_white : ['href', 'src', 'name', 'align', 'colspan', 'rowspan'], attrib_clean : ['href', 'src' ] }); new Roo.htmleditor.FilterBlack({ node : d, tag : this.black}); @@ -54317,7 +54367,7 @@ Roo.extend(Roo.form.Form, Roo.form.BasicForm, { * @cfg {String} itemCls A css class to apply to the x-form-item of fields. This property cascades to child containers. */ /** - * @cfg {String} buttonAlign Valid values are "left," "center" and "right" (defaults to "center") + * @cfg {String} (left|center|right) buttonAlign Valid values are "left," "center" and "right" (defaults to "center") */ buttonAlign:'center', @@ -54327,7 +54377,7 @@ Roo.extend(Roo.form.Form, Roo.form.BasicForm, { minButtonWidth:75, /** - * @cfg {String} labelAlign Valid values are "left," "top" and "right" (defaults to "left"). + * @cfg {String} labelAlign (left|top|right) Valid values are "left," "top" and "right" (defaults to "left"). * This property cascades to child containers if not set. */ labelAlign:'left', @@ -61388,7 +61438,7 @@ Roo.extend(Roo.grid.Grid, Roo.util.Observable, { * @cfg {Roo.grid.ColumnModel} cm[] The columns of the grid */ /** - * @cfg {Roo.grid.Store} ds The data store for the grid + * @cfg {Roo.data.Store} ds The data store for the grid */ /** * @cfg {Roo.Toolbar} toolbar a toolbar for buttons etc.