X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-debug.js;h=a228ec51fc925deddf08966b474ca05c59336e10;hb=HEAD;hp=8e7b3b9db23d3c3400f1a1995d9ad1b8ba88e45b;hpb=7dfd0d3cd68424e103991ef6946d2368cbe08a81;p=roojs1 diff --git a/roojs-debug.js b/roojs-debug.js index 8e7b3b9db2..a228ec51fc 100644 --- a/roojs-debug.js +++ b/roojs-debug.js @@ -2705,7 +2705,10 @@ Roo.lib.Event = function() { * @param {DomForm} form element * @return {String} urlencode form output. */ - serializeForm : function(form) { + serializeForm : function(form, include_disabled) { + + include_disabled = typeof(include_disabled) == 'undefined' ? false : include_disabled; + if(typeof form == 'string') { form = (document.getElementById(form) || document.forms[form]); } @@ -2713,7 +2716,7 @@ Roo.lib.Event = function() { var el, name, val, disabled, data = '', hasSubmit = false; for (var i = 0; i < form.elements.length; i++) { el = form.elements[i]; - disabled = form.elements[i].disabled; + disabled = include_disabled ? false : form.elements[i].disabled; name = form.elements[i].name; val = form.elements[i].value; @@ -16633,8 +16636,8 @@ Roo.extend(Roo.state.Provider, Roo.util.Observable, { init : function(){ Roo.state.Manager.setProvider(new Roo.state.CookieProvider()); ... - // supposed you have a {@link Roo.BorderLayout} - var layout = new Roo.BorderLayout(...); + // supposed you have a {@link Roo.layout.Border} + var layout = new Roo.layout.Border(...); layout.restoreState(); // or a {Roo.BasicDialog} var dialog = new Roo.BasicDialog(...); @@ -18065,7 +18068,7 @@ Roo.extend(Roo.Layer, Roo.Element, { * * Each sub module is expected to have a parent pointing to the class name of it's parent module. * - * When the top level is false, a 'Roo.BorderLayout' is created and the element is flagged as 'topModule' + * When the top level is false, a 'Roo.layout.Border' is created and the element is flagged as 'topModule' * - if mulitple topModules exist, the last one is defined as the top module. * * Embeded Roo @@ -18284,7 +18287,7 @@ Roo.extend(Roo.XComponent, Roo.util.Observable, { el = el ? Roo.get(el) : false; - if (typeof(Roo.BorderLayout) == 'undefined' ) { + if (typeof(Roo.layout.Border) == 'undefined' ) { this.parent = { el : new Roo.bootstrap.layout.Border({ @@ -18307,7 +18310,7 @@ Roo.extend(Roo.XComponent, Roo.util.Observable, { // it's a top level one.. this.parent = { - el : new Roo.BorderLayout(el || document.body, { + el : new Roo.layout.Border(el || document.body, { center: { titlebar: false, autoScroll:false, @@ -36585,7 +36588,7 @@ if(!dialog){ dialog.addButton("Build It!", this.getDownload, this); // we can even add nested layouts - var innerLayout = new Roo.BorderLayout("dl-inner", { + var innerLayout = new Roo.layout.Border("dl-inner", { east: { initialSize: 200, autoScroll:true, @@ -36630,7 +36633,7 @@ Roo.LayoutDialog = function(el, cfg){ config.autoTabs = false; Roo.LayoutDialog.superclass.constructor.call(this, el, config); this.body.setStyle({overflow:"hidden", position:"relative"}); - this.layout = new Roo.BorderLayout(this.body.dom, config); + this.layout = new Roo.layout.Border(this.body.dom, config); this.layout.monitorWindowResize = false; this.el.addClass("x-dlg-auto-layout"); // fix case when center region overwrites center function @@ -36648,19 +36651,19 @@ Roo.extend(Roo.LayoutDialog, Roo.BasicDialog, { /** - * @cfg {Roo.LayoutRegion} east + * @cfg {Roo.layout.Region} east */ /** - * @cfg {Roo.LayoutRegion} west + * @cfg {Roo.layout.Region} west */ /** - * @cfg {Roo.LayoutRegion} south + * @cfg {Roo.layout.Region} south */ /** - * @cfg {Roo.LayoutRegion} north + * @cfg {Roo.layout.Region} north */ /** - * @cfg {Roo.LayoutRegion} center + * @cfg {Roo.layout.Region} center */ /** * @cfg {Roo.Button} buttons[] Bottom buttons.. @@ -36685,7 +36688,7 @@ Roo.extend(Roo.LayoutDialog, Roo.BasicDialog, { /** * Get the BorderLayout for this dialog - * @return {Roo.BorderLayout} + * @return {Roo.layout.Border} */ getLayout : function(){ return this.layout; @@ -43136,9 +43139,9 @@ Roo.extend(Roo.form.TextField, Roo.form.Field, { if(this.selectOnFocus){ this.on("focus", this.preFocus, this); } - if (!this.allowLeadingSpace) { - this.on('blur', this.cleanLeadingSpace, this); - } + if (!this.allowLeadingSpace) { + this.on('blur', this.cleanLeadingSpace, this); + } if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Roo.form.VTypes[this.vtype+'Mask']))){ this.el.on("keypress", this.filterKeys, this); @@ -43871,6 +43874,10 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { * @cfg {String} decimalSeparator Character(s) to allow as the decimal separator (defaults to '.') */ decimalSeparator : ".", + /** + * @cfg {String} thousandSeparator Character(s) to allow as the thousand separator (defaults to '') - set to ',' for example + */ + thousandSeparator : "", /** * @cfg {Number} decimalPrecision The maximum precision to display after the decimal separator (defaults to 2) */ @@ -43900,14 +43907,60 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { * if a valid character like '.' or '-' is left in the field with no number (defaults to "{value} is not a valid number") */ nanText : "{0} is not a valid number", - + + hiddenField : false, + + onRender : function(ct, position) + { + Roo.form.TextField.superclass.onRender.call(this, ct, position); + + //this.el.dom.removeAttribute('name'); + Roo.log("Changing name?"); + if (this.thousandSeparator != '') { + this.el.dom.setAttribute('name', this.name + '____hidden___' ); + this.hiddenField = this.el.insertSibling({ tag:'input', type:'hidden', name: this.name }, + 'before', true); + this.hiddenField.value = this.value ? this.parseValue(this.value) : ''; + this.el.on('blur', this.onBlur, this); + } + + // prevent input submission + + + + }, + onBlur : function(){ + this.beforeBlur(); + if(!Roo.isOpera && this.focusClass){ // don't touch in Opera + this.el.removeClass(this.focusClass); + } + this.hasFocus = false; + if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ + this.validate(); + } + var v = this.getValue(); + if(String(v) !== String(this.startValue)){ + this.setValue( this.parseValue(v)); + this.fireEvent('change', this, v, this.startValue); + } + this.fireEvent("blur", this); + }, + + // override name, so that it works with hidden field. + getName: function(){ + if (this.thousandSeparator != '') { + return this.name; + } + return Roo.form.TextField.superclass.getName.call(this); + }, // private initEvents : function(){ - Roo.form.NumberField.superclass.initEvents.call(this); + var allowed = "0123456789"; if(this.allowDecimals){ allowed += this.decimalSeparator; } + allowed += this.thousandSeparator; if(this.allowNegative){ allowed += "-"; } @@ -43955,7 +44008,7 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { // private parseValue : function(value){ - value = parseFloat(String(value).replace(this.decimalSeparator, ".")); + value = parseFloat(String(value).replace(this.decimalSeparator, ".").split(this.thousandSeparator).join('')); return isNaN(value) ? '' : value; }, @@ -43970,7 +44023,15 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { setValue : function(v){ v = this.fixPrecision(v); + if(this.thousandSeparator != ''){ + v = Roo.util.Format.number(v, this.decimalPrecision, this.thousandSeparator); + } Roo.form.NumberField.superclass.setValue.call(this, String(v).replace(".", this.decimalSeparator)); + if (this.hiddenField !== false) { + this.hiddenField.value = v ? this.parseValue(v) : ''; + } + + }, // private @@ -44327,7 +44388,7 @@ dateField.setValue('2006-5-4'); // private // Implements the default empty TriggerField.onTriggerClick function to display the DatePicker onTriggerClick : function(){ - if(this.disabled){ + if(this.disabled || this.readOnly){ return; } if(this.menu == null){ @@ -47920,6 +47981,49 @@ Roo.extend(Roo.htmleditor.FilterComment, Roo.htmleditor.Filter, { n.parentNode.removeChild(n); } +});/** + * @class Roo.htmleditor.FilterEmpty + * filter empty elements + * @constructor + * Run a new Empty Filter + * @param {Object} config Configuration options + */ + +Roo.htmleditor.FilterEmpty = function(cfg) +{ + // no need to apply config. + this.walk(cfg.node); +} + +Roo.extend(Roo.htmleditor.FilterEmpty, Roo.htmleditor.FilterBlack, +{ + + tag : true, + + + replaceTag : function(node) + { + // start from leaf node + if(node.hasChildNodes()) { + this.walk(node); + } + + // only filter empty leaf element with certain tags + if( + ['B', 'I', 'U', 'S'].indexOf(node.tagName) < 0 + || + node.attributes && node.attributes.length > 0 + || + node.hasChildNodes() + ) { + return false; // don't walk + } + + Roo.htmleditor.FilterBlack.prototype.replaceTag.call(this, node); + return false; // don't walk + + } + });/** * @class Roo.htmleditor.FilterKeepChildren * remove tags but keep children @@ -48615,12 +48719,12 @@ Roo.htmleditor.FilterStyleToTag = function(cfg) { this.tags = { - B : [ 'fontWeight' , 'bold'], - I : [ 'fontStyle' , 'italic'], + B : [ 'fontWeight' , 'bold', 'font-weight'], + I : [ 'fontStyle' , 'italic', 'font-style'], //pre : [ 'font-style' , 'italic'], // h1.. h6 ?? font-size? - SUP : [ 'verticalAlign' , 'super' ], - SUB : [ 'verticalAlign' , 'sub' ] + SUP : [ 'verticalAlign' , 'super', 'vertical-align'], + SUB : [ 'verticalAlign' , 'sub', 'vertical-align'] }; @@ -48653,7 +48757,7 @@ Roo.extend(Roo.htmleditor.FilterStyleToTag, Roo.htmleditor.Filter, for (var k in this.tags) { if (node.style[this.tags[k][0]] == this.tags[k][1]) { inject.push(k); - node.style.removeProperty(this.tags[k][0]); + node.style.removeProperty(this.tags[k][2]); } } if (!inject.length) { @@ -48666,7 +48770,7 @@ Roo.extend(Roo.htmleditor.FilterStyleToTag, Roo.htmleditor.Filter, nn.appendChild(nc); nn = nc; }); - for(var i = 0;i < cn.length;cn++) { + for(var i = 0;i < cn.length;i++) { node.removeChild(cn[i]); nn.appendChild(cn[i]); } @@ -50565,8 +50669,11 @@ Roo.extend(Roo.htmleditor.BlockFigure, Roo.htmleditor.Block, { maxWidth : iw + ' !important', // this is not getting rendered? margin : m - } + }, + width: this.align == 'center' ? this.width : '100%' + }; + /* '
' + '' + @@ -51836,7 +51943,13 @@ Roo.extend(Roo.htmleditor.BlockTd, Roo.htmleditor.Block, { if (this.colWidths[0] != false && table[r][c].colspan > 1) { var el = Roo.htmleditor.Block.factory(table[r][c].cell); var width = 0; + var lv = false; for(var i = 0; i < table[r][c].colspan; i ++) { + if (typeof(this.colWidths[c + i]) != 'undefined') { + lv = this.colWidths[c + i]; + } else { + this.colWidths[c + i] = lv; + } width += Math.floor(this.colWidths[c + i]); } el.width = width +'%'; @@ -51906,7 +52019,11 @@ Roo.extend(Roo.htmleditor.BlockTd, Roo.htmleditor.Block, { this.colWidths[i] = nw; return; } - this.colWidths[i] += otherAdd + if (typeof(this.colWidths[i]) == 'undefined') { + this.colWidths[i] = otherAdd; + } else { + this.colWidths[i] += otherAdd; + } }, this); this.updateWidths(table); @@ -51926,7 +52043,12 @@ Roo.extend(Roo.htmleditor.BlockTd, Roo.htmleditor.Block, { this.colWidths[i] = nw; return; } - this.colWidths[i] -= otherSub + if (typeof(this.colWidths[i]) == 'undefined') { + this.colWidths[i] = otherSub; + } else { + this.colWidths[i] -= otherSub; + } + }, this); this.updateWidths(table); @@ -52356,6 +52478,16 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { if (this.enableBlocks) { + Array.from(bd.getElementsByTagName('img')).forEach(function(img) { + var fig = img.closest('figure'); + if (fig) { + var bf = new Roo.htmleditor.BlockFigure({ + node : fig + }); + bf.updateElement(); + } + + }); new Roo.htmleditor.FilterBlock({ node : div }); } @@ -52363,7 +52495,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { //?? tidy? if (this.autoClean) { - + new Roo.htmleditor.FilterBlack({ node : div, tag : this.black}); new Roo.htmleditor.FilterAttributes({ node : div, attrib_white : [ @@ -52389,6 +52521,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { ], attrib_clean : ['href', 'src' ] }); + new Roo.htmleditor.FilterEmpty({ node : div}); var tidy = new Roo.htmleditor.TidySerializer({ inner: true @@ -52706,6 +52839,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, { new Roo.htmleditor.FilterSpan({ node : d }); new Roo.htmleditor.FilterLongBr({ node : d }); new Roo.htmleditor.FilterComment({ node : d }); + new Roo.htmleditor.FilterEmpty({ node : d}); } @@ -60492,7 +60626,7 @@ Roo.extend(Roo.DDView, Roo.View, { } } }); -/* +Roo.layout = {};/* * Based on: * Ext JS Library 1.1.1 * Copyright(c) 2006-2007, Ext JS, LLC. @@ -60504,12 +60638,12 @@ Roo.extend(Roo.DDView, Roo.View, { */ /** - * @class Roo.LayoutManager + * @class Roo.layout.Manager * @extends Roo.util.Observable * Base class for layout managers. */ -Roo.LayoutManager = function(container, config){ - Roo.LayoutManager.superclass.constructor.call(this); +Roo.layout.Manager = function(container, config){ + Roo.layout.Manager.superclass.constructor.call(this); this.el = Roo.get(container); // ie scrollbar fix if(this.el.dom == document.body && Roo.isIE && !config.allowScroll){ @@ -60526,26 +60660,26 @@ Roo.LayoutManager = function(container, config){ /** * @event layout * Fires when a layout is performed. - * @param {Roo.LayoutManager} this + * @param {Roo.layout.Manager} this */ "layout" : true, /** * @event regionresized * Fires when the user resizes a region. - * @param {Roo.LayoutRegion} region The resized region + * @param {Roo.layout.Region} region The resized region * @param {Number} newSize The new size (width for east/west, height for north/south) */ "regionresized" : true, /** * @event regioncollapsed * Fires when a region is collapsed. - * @param {Roo.LayoutRegion} region The collapsed region + * @param {Roo.layout.Region} region The collapsed region */ "regioncollapsed" : true, /** * @event regionexpanded * Fires when a region is expanded. - * @param {Roo.LayoutRegion} region The expanded region + * @param {Roo.layout.Region} region The expanded region */ "regionexpanded" : true }); @@ -60553,7 +60687,7 @@ Roo.LayoutManager = function(container, config){ Roo.EventManager.onWindowResize(this.onWindowResize, this, true); }; -Roo.extend(Roo.LayoutManager, Roo.util.Observable, { +Roo.extend(Roo.layout.Manager, Roo.util.Observable, { /** * Returns true if this layout is currently being updated * @return {Boolean} @@ -60626,7 +60760,7 @@ Roo.extend(Roo.LayoutManager, Roo.util.Observable, { /** * Returns the specified region. * @param {String} target The region key ('center', 'north', 'south', 'east' or 'west') - * @return {Roo.LayoutRegion} + * @return {Roo.layout.Region} */ getRegion : function(target){ return this.regions[target.toLowerCase()]; @@ -60648,8 +60782,8 @@ Roo.extend(Roo.LayoutManager, Roo.util.Observable, { *