X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-bootstrap-debug.js;h=f155bf72c0876c95c60d9c3a46f7db4b5b15f8c7;hb=a094b161eb4c2cbc1877f8ddcf027ceca7444f21;hp=980c3ce65c5f1bcfd9bb679af16a47302df6a23b;hpb=9d73451d70f4d3df31d85d9ec95d16b676dfbc3b;p=roojs1 diff --git a/roojs-bootstrap-debug.js b/roojs-bootstrap-debug.js index 980c3ce65c..f155bf72c0 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -6,13 +6,13 @@ Roo.bootstrap.version = ( function() { var ret=3; - Roo.each(document.styleSheets[0], function(s) { + Roo.each(document.styleSheets, function(s) { if (s.href.match(/css-bootstrap4/)) { ret=4; } }); return ret; -})();/* +})(); /* * - LGPL * * base class for bootstrap elements. @@ -1072,10 +1072,12 @@ Roo.extend(Roo.bootstrap.Column, Roo.bootstrap.Component, { } if (!settings[size]) { // 0 = hidden - cfg.cls += ' hidden-' + size; + cfg.cls += ' hidden-' + size + ' hidden' + size + '-down';; return; } - cfg.cls += ' col-' + size + '-' + settings[size]; + cfg.cls += ' col-' + size + '-' + settings[size] + ( + size == 'xs' ? (' col-' + settings[size] ) : '' // bs4 col-{num} replaces col-xs + ); }); @@ -2060,13 +2062,13 @@ Roo.bootstrap.Menu = function(config){ this.addEvents({ /** * @event beforeshow - * Fires before this menu is displayed + * Fires before this menu is displayed (return false to block) * @param {Roo.menu.Menu} this */ beforeshow : true, /** * @event beforehide - * Fires before this menu is hidden + * Fires before this menu is hidden (return false to block) * @param {Roo.menu.Menu} this */ beforehide : true, @@ -2268,7 +2270,7 @@ Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component, { isVisible : function(){ return !this.hidden; }, - onMouseOut : function(e){ + onMouseOut : function(e){ var t = this.findTargetItem(e); //if(t ){ @@ -2288,12 +2290,17 @@ Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component, { * the element (defaults to this.defaultAlign) * @param {Roo.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined) */ - show : function(el, pos, parentMenu){ - this.parentMenu = parentMenu; + show : function(el, pos, parentMenu) + { + if (false === this.fireEvent("beforeshow", this)) { + Roo.log("show canceled"); + return; + } + this.parentMenu = parentMenu; if(!this.el){ this.render(); } - this.fireEvent("beforeshow", this); + this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false); }, /** @@ -2356,10 +2363,13 @@ Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component, { */ hide : function(deep) { - + if (false === this.fireEvent("beforehide", this)) { + Roo.log("hide canceled"); + return; + } this.hideMenuItems(); if(this.el && this.isVisible()){ - this.fireEvent("beforehide", this); + if(this.activeItem){ this.activeItem.deactivate(); this.activeItem = null; @@ -2426,16 +2436,11 @@ Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component, { if (!this.el) { return; } - //$(backdrop).remove() + this.el.select('.open',true).each(function(aa) { aa.removeClass('open'); - //var parent = getParent($(this)) - //var relatedTarget = { relatedTarget: this } - - //$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - //if (e.isDefaultPrevented()) return - //$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) + }); }, addxtypeChild : function (tree, cntr) { @@ -2646,6 +2651,8 @@ Roo.extend(Roo.bootstrap.MenuSeparator, Roo.bootstrap.Component, { * @cfg {Boolean} animate default true * @cfg {Boolean} allow_close default true * @cfg {Boolean} fitwindow default false + * @cfg {Number} width fixed width - usefull for chrome extension only really. + * @cfg {Number} height fixed height - usefull for chrome extension only really. * @cfg {String} size (sm|lg) default empty * @cfg {Number} max_width set the max width of modal * @@ -3875,46 +3882,7 @@ Roo.extend(Roo.bootstrap.Navbar, Roo.bootstrap.Component, { initEvents :function () { //Roo.log(this.el.select('.navbar-toggle',true)); - this.el.select('.navbar-toggle',true).on('click', function() { - if(this.fireEvent('beforetoggle', this) !== false){ - var ce = this.el.select('.navbar-collapse',true).first(); - ce.toggleClass('in'); // old... - if (ce.hasClass('collapse')) { - // show it... - ce.removeClass('collapse'); - ce.addClass('show'); - var h = ce.getHeight(); - Roo.log(h); - ce.removeClass('show'); - // at this point we should be able to see it.. - ce.addClass('collapsing'); - - ce.setHeight(0); // resize it ... - ce.on('transitionend', function() { - Roo.log('done transition'); - ce.removeClass('collapsing'); - ce.addClass('show'); - ce.removeClass('collapse'); - - ce.dom.style.height = ''; - }, this, { single: true} ); - ce.setHeight(h); - - } else { - ce.setHeight(ce.getHeight()); - ce.removeClass('show'); - ce.addClass('collapsing'); - - ce.on('transitionend', function() { - ce.dom.style.height = ''; - ce.removeClass('collapsing'); - ce.addClass('collapse'); - }, this, { single: true} ); - ce.setHeight(0); - } - } - - }, this); + this.el.select('.navbar-toggle',true).on('click', this.onToggle , this); var mark = { tag: "div", @@ -3936,7 +3904,7 @@ Roo.extend(Roo.bootstrap.Navbar, Roo.bootstrap.Component, { getChildContainer : function() { - if (this.el.select('.collapse').getCount()) { + if (this.el && this.el.select('.collapse').getCount()) { return this.el.select('.collapse',true).first(); } @@ -3951,8 +3919,80 @@ Roo.extend(Roo.bootstrap.Navbar, Roo.bootstrap.Component, { unmask : function() { this.maskEl.hide(); - } + }, + onToggle : function() + { + + if(this.fireEvent('beforetoggle', this) === false){ + return; + } + var ce = this.el.select('.navbar-collapse',true).first(); + + if (!ce.hasClass('show')) { + this.expand(); + } else { + this.collapse(); + } + + + }, + /** + * Expand the navbar pulldown + */ + expand : function () + { + + var ce = this.el.select('.navbar-collapse',true).first(); + if (ce.hasClass('collapsing')) { + return; + } + ce.dom.style.height = ''; + // show it... + ce.addClass('in'); // old... + ce.removeClass('collapse'); + ce.addClass('show'); + var h = ce.getHeight(); + Roo.log(h); + ce.removeClass('show'); + // at this point we should be able to see it.. + ce.addClass('collapsing'); + + ce.setHeight(0); // resize it ... + ce.on('transitionend', function() { + //Roo.log('done transition'); + ce.removeClass('collapsing'); + ce.addClass('show'); + ce.removeClass('collapse'); + + ce.dom.style.height = ''; + }, this, { single: true} ); + ce.setHeight(h); + ce.dom.scrollTop = 0; + }, + /** + * Collapse the navbar pulldown + */ + collapse : function() + { + var ce = this.el.select('.navbar-collapse',true).first(); + + if (ce.hasClass('collapsing') || ce.hasClass('collapse') ) { + // it's collapsed or collapsing.. + return; + } + ce.removeClass('in'); // old... + ce.setHeight(ce.getHeight()); + ce.removeClass('show'); + ce.addClass('collapsing'); + + ce.on('transitionend', function() { + ce.dom.style.height = ''; + ce.removeClass('collapsing'); + ce.addClass('collapse'); + }, this, { single: true} ); + ce.setHeight(0); + } @@ -4019,7 +4059,7 @@ Roo.extend(Roo.bootstrap.NavSimplebar, Roo.bootstrap.Navbar, { var cfg = { tag : this.tag || 'div', - cls : 'navbar navbar-expand-lg roo-navbar-simple' + cls : 'navbar roo-navbar-simple' //navbar-expand-lg ?? }; if (['light','white'].indexOf(this.weight) > -1) { cfg.cls += ['light','white'].indexOf(this.weight) > -1 ? ' navbar-light' : ' navbar-dark'; @@ -4033,13 +4073,16 @@ Roo.extend(Roo.bootstrap.NavSimplebar, Roo.bootstrap.Navbar, { // i'm not actually sure these are really used - normally we add a navGroup to a navbar - //if (Roo.bootstrap.version == 4) { - // return cfg; - //} + if (Roo.bootstrap.version == 4 && this.xtype == 'NavSimplebar') { + return cfg; + } + + + cfg.cn = [ { - cls: 'nav', + cls: 'nav nav-' + this.xtype, tag : 'ul' } ]; @@ -4181,7 +4224,7 @@ Roo.extend(Roo.bootstrap.NavHeaderbar, Roo.bootstrap.NavSimplebar, { cn.push({ tag: 'div', - cls: 'collapse navbar-collapse', + cls: Roo.bootstrap.version == 4 ? 'nav flex-row roo-navbar-collapse' : 'collapse navbar-collapse roo-navbar-collapse', cn : [] }); @@ -4373,8 +4416,13 @@ Roo.extend(Roo.bootstrap.NavGroup, Roo.bootstrap.Component, { if (['tabs','pills'].indexOf(this.type) != -1) { cfg.cls += ' nav-' + this.type; } else { - cfg.cls += ' navbar-nav'; + // trying to remove so header bar can right align top? + if (this.parent() && this.parent().xtype != 'NavHeaderbar') { + // do not use on header bar... + cfg.cls += ' navbar-nav'; + } } + } else { if (['tabs','pills'].indexOf(this.type) != -1) { cfg.cls += ' nav-' + this.type @@ -4400,7 +4448,7 @@ Roo.extend(Roo.bootstrap.NavGroup, Roo.bootstrap.Component, { tag: 'form', cls: 'navbar-form form-inline' }; - + //nav navbar-right ml-md-auto if (this.align === 'right') { cfg.cls += ' navbar-right ml-md-auto'; } else { @@ -4851,7 +4899,7 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { // if parent is a navbarheader....- and link is probably a '#' page ref.. then remove the expanded menu. if (p.parentType == 'NavHeaderbar' && !this.menu) { // remove the collapsed menu expand... - p.parent().el.select('.navbar-collapse',true).removeClass('in'); + p.parent().el.select('.roo-navbar-collapse',true).removeClass('in'); } }, @@ -5125,7 +5173,7 @@ Roo.extend(Roo.bootstrap.NavSidebarItem, Roo.bootstrap.NavItem, { e.preventDefault(); } - this.fireEvent('click', this); + this.fireEvent('click', this, e); }, disable : function() @@ -6772,8 +6820,10 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component, { c.html = '' + c.html; } + // could use BS4 hidden-..-down + if(typeof(config.lgHeader) != 'undefined'){ - hh += '
'; + hh += ' '; } if(typeof(config.mdHeader) != 'undefined'){ @@ -6830,14 +6880,18 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component, { if(typeof(config[size]) == 'undefined'){ return; } - + if (!config[size]) { // 0 = hidden - c.cls += ' hidden-' + size; + // BS 4 '0' is treated as hide that column and below. + c.cls += ' hidden-' + size + ' hidden' + size + '-down'; return; } - c.cls += ' col-' + size + '-' + config[size]; - + c.cls += ' col-' + size + '-' + config[size] + ( + size == 'xs' ? (' col-' + config[size] ) : '' // bs4 col-{num} replaces col-xs + ); + + }); header.cn.push(c) @@ -7143,12 +7197,18 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component, { return; } + + if (!config[size]) { // 0 = hidden - td.cls += ' hidden-' + size; + // BS 4 '0' is treated as hide that column and below. + td.cls += ' hidden-' + size + ' hidden' + size + '-down'; return; } - td.cls += ' col-' + size + '-' + config[size]; + td.cls += ' col-' + size + '-' + config[size] + ( + size == 'xs' ? (' col-' + config[size] ) : '' // bs4 col-{num} replaces col-xs + ); + }); @@ -7903,7 +7963,8 @@ Roo.extend(Roo.form.Action.Submit, Roo.form.Action, { url:this.getUrl(!isPost), method: method, params:isPost ? this.getParams() : null, - isUpload: this.form.fileUpload + isUpload: this.form.fileUpload, + formData : this.form.formData })); this.uploadProgress(); @@ -10396,7 +10457,7 @@ trigger.applyTo('my-field'); * {@link Roo.bootstrap.DateField} and {@link Roo.bootstrap.ComboBox} are perfect examples of this. * @cfg {String} triggerClass An additional CSS class used to style the trigger button. The trigger will always get the * class 'x-form-trigger' by default and triggerClass will be appended if specified. - * @cfg {String} caret (search|calendar) a fontawesome for the trigger icon see http://fortawesome.github.io/Font-Awesome/icons/ + * @cfg {String} caret (search|calendar) BS3 only - carat fa name * @constructor * Create a new TriggerField. @@ -10604,7 +10665,7 @@ Roo.extend(Roo.bootstrap.TriggerField, Roo.bootstrap.Input, { tag :'span', cls : 'input-group-addon input-group-append input-group-text btn dropdown-toggle', cn : [ - caret, + Roo.bootstrap.version == 3 ? caret : '', { tag: 'span', cls: 'combobox-clear', @@ -12378,7 +12439,7 @@ Roo.extend(Roo.data.MemoryProxy, Roo.data.DataProxy, { params = params || {}; var result; try { - result = reader.readRecords(this.data); + result = reader.readRecords(params.data ? params.data :this.data); }catch(e){ this.fireEvent("loadexception", this, arg, null, e); callback.call(scope, null, arg, false); @@ -12985,24 +13046,31 @@ var myReader = new Roo.data.ArrayReader({ *
[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
- * @cfg {String} id (optional) The subscript within row Array that provides an ID for the Record
+
* @constructor
* Create a new JsonReader
* @param {Object} meta Metadata configuration options.
- * @param {Object} recordType Either an Array of field definition objects
+ * @param {Object|Array} recordType Either an Array of field definition objects
+ *
+ * @cfg {Array} fields Array of field definition objects
+ * @cfg {String} id Name of the property within a row object that contains a record identifier value.
* as specified to {@link Roo.data.Record#create},
* or an {@link Roo.data.Record} object
+ *
+ *
* created using {@link Roo.data.Record#create}.
*/
Roo.data.ArrayReader = function(meta, recordType){
- Roo.data.ArrayReader.superclass.constructor.call(this, meta, recordType);
+
+
+ Roo.data.ArrayReader.superclass.constructor.call(this, meta, recordType||meta.fields);
};
Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, {
/**
* Create a data block containing Roo.data.Records from an XML document.
* @param {Object} o An Array of row objects which represents the dataset.
- * @return {Object} data A data block which is used by an Roo.data.Store object as
+ * @return {Object} A data block which is used by an {@link Roo.data.Store} object as
* a cache of Roo.data.Records.
*/
readRecords : function(o){
@@ -15315,8 +15383,7 @@ Roo.extend(Roo.bootstrap.ComboBox, Roo.bootstrap.TriggerField, {
if(!this.multiple && this.showToggleBtn){
var caret = {
- tag: 'span',
- cls: 'caret'
+ cls: 'caret'
};
if (this.caret != false) {
@@ -15331,7 +15398,7 @@ Roo.extend(Roo.bootstrap.ComboBox, Roo.bootstrap.TriggerField, {
tag :'span',
cls : 'input-group-addon input-group-append input-group-text btn dropdown-toggle',
cn : [
- caret,
+ Roo.bootstrap.version == 3 ? caret : '',
{
tag: 'span',
cls: 'combobox-clear',
@@ -23084,12 +23151,29 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component, {
*/
cleanWord : function(node)
{
-
-
if (!node) {
this.cleanWord(this.doc.body);
return;
}
+
+ if(
+ node.nodeName == 'SPAN' &&
+ !node.hasAttributes() &&
+ node.childNodes.length == 1 &&
+ node.firstChild.nodeName == "#text"
+ ) {
+ var textNode = node.firstChild;
+ node.removeChild(textNode);
+ if (node.getAttribute('lang') != 'zh-CN') { // do not space pad on chinese characters..
+ node.parentNode.insertBefore(node.ownerDocument.createTextNode(" "), node);
+ }
+ node.parentNode.insertBefore(textNode, node);
+ if (node.getAttribute('lang') != 'zh-CN') { // do not space pad on chinese characters..
+ node.parentNode.insertBefore(node.ownerDocument.createTextNode(" ") , node);
+ }
+ node.parentNode.removeChild(node);
+ }
+
if (node.nodeName == "#text") {
// clean up silly Windows -- stuff?
return;
@@ -24041,6 +24125,7 @@ Roo.namespace('Roo.bootstrap.htmleditor');
* @class Roo.bootstrap.HtmlEditorToolbar1
* Basic Toolbar
*
+ * @example
* Usage:
*
new Roo.bootstrap.HtmlEditor({
@@ -27167,17 +27252,15 @@ Roo.apply(Roo.bootstrap.LocationPicker, {
}
-});/*
- * - LGPL
- *
- * Alert
- *
- */
-
-/**
+});/**
* @class Roo.bootstrap.Alert
* @extends Roo.bootstrap.Component
- * Bootstrap Alert class
+ * Bootstrap Alert class - shows an alert area box
+ * eg
+ *