From bbffc0b989d2060200417fd91bab3b8fe98b65f1 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Wed, 12 May 2021 15:28:08 +0800 Subject: [PATCH] Fix #6696 - Document Browse --- Roo/bootstrap/Card.js | 9 +- Roo/bootstrap/Element.js | 8 +- Roo/bootstrap/NavItem.js | 38 ++++--- Roo/data/ArrayReader.js | 50 ++++----- docs/json/roodata.json | 46 ++++++++ docs/src/Roo_bootstrap_Card.js.html | 9 +- docs/src/Roo_bootstrap_Element.js.html | 10 +- docs/src/Roo_bootstrap_NavItem.js.html | 36 ++++-- docs/src/Roo_data_ArrayReader.js.html | 48 ++++---- docs/symbols/Roo.bootstrap.CardFooter.json | 7 ++ docs/symbols/Roo.bootstrap.CardHeader.json | 7 ++ docs/symbols/Roo.bootstrap.CardImageTop.json | 7 ++ docs/symbols/Roo.bootstrap.DropTarget.json | 7 ++ docs/symbols/Roo.bootstrap.Element.json | 7 ++ docs/symbols/Roo.bootstrap.NavItem.json | 21 ++++ .../symbols/Roo.bootstrap.NavSidebarItem.json | 21 ++++ roojs-bootstrap-debug.js | 105 +++++++++++------- roojs-bootstrap.js | 21 ++-- roojs-debug.js | 50 ++++----- roojs-ui-debug.js | 50 ++++----- 20 files changed, 369 insertions(+), 188 deletions(-) diff --git a/Roo/bootstrap/Card.js b/Roo/bootstrap/Card.js index 58c24ac626..6c1804f17d 100644 --- a/Roo/bootstrap/Card.js +++ b/Roo/bootstrap/Card.js @@ -149,6 +149,7 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { headerEl : false, header_imageEl : false, + layoutCls : function() { var cls = ''; @@ -404,11 +405,11 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { if (this.rotateable) { this.el.select('.card-header',true).on('click', this.onToggleRotate, this); } - this.collapsableEl = this.el.select('.roo-collapsable').first(); + this.collapsableEl = this.el.select('.roo-collapsable',true).first(); - this.footerEl = this.el.select('.card-footer').first(); - this.collapsableToggleEl = this.el.select('.roo-collapse-toggle'); - this.headerContainerEl = this.el.select('.roo-card-header-ctr').first(); + this.footerEl = this.el.select('.card-footer',true).first(); + this.collapsableToggleEl = this.el.select('.roo-collapse-toggle',true).first(); + this.headerContainerEl = this.el.select('.roo-card-header-ctr',true).first(); this.headerEl = this.el.select('.card-header',true).first(); if (this.rotated) { diff --git a/Roo/bootstrap/Element.js b/Roo/bootstrap/Element.js index 5756f64438..bd6151e31e 100644 --- a/Roo/bootstrap/Element.js +++ b/Roo/bootstrap/Element.js @@ -14,6 +14,8 @@ * @cfg {String} cls class of the element * @cfg {Boolean} preventDefault (true|false) default false * @cfg {Boolean} clickable (true|false) default false + * @cfg {String} role default blank - set to button to force cursor pointer + * * @constructor * Create a new Element @@ -45,6 +47,7 @@ Roo.extend(Roo.bootstrap.Element, Roo.bootstrap.Component, { preventDefault: false, clickable: false, tapedTwice : false, + role : false, getAutoCreate : function(){ @@ -53,6 +56,9 @@ Roo.extend(Roo.bootstrap.Element, Roo.bootstrap.Component, { // cls: this.cls, double assign in parent class Component.js :: onRender html: this.html }; + if (this.role !== false) { + cfg.role = this.role; + } return cfg; }, @@ -74,7 +80,7 @@ Roo.extend(Roo.bootstrap.Element, Roo.bootstrap.Component, { e.preventDefault(); } - this.fireEvent('dblclick', this, e); + this.fireEvent('click', this, e); // why was this double click before? }, diff --git a/Roo/bootstrap/NavItem.js b/Roo/bootstrap/NavItem.js index 9f7b149e18..5b4494d940 100644 --- a/Roo/bootstrap/NavItem.js +++ b/Roo/bootstrap/NavItem.js @@ -107,8 +107,10 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { cfg.href = this.href; } if (this.fa) { - cfg.html = ' ' + this.html + ''; - } + cfg.html = ' ' + this.html + ''; + } else { + cfg.cls += " nav-html"; + } // menu .. should add dropdown-menu class - so no need for carat.. @@ -124,7 +126,8 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { { tag: this.tagtype, href : this.href || "#", - html: this.html || '' + html: this.html || '', + cls : '' } ]; if (this.tagtype == 'a') { @@ -132,23 +135,21 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { } if (this.icon) { - cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; - } - if (this.fa) { - cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; - } - if(this.glyphicon) { + cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; + } else if (this.fa) { + cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; + } else if(this.glyphicon) { cfg.cn[0].html = ' ' + cfg.cn[0].html; - } + } else { + cfg.cn[0].cls += " nav-html"; + } if (this.menu) { - cfg.cn[0].html += " "; } if (this.badge !== '') { - cfg.cn[0].html += ' ' + this.badge + ''; } } @@ -166,6 +167,7 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { var ret = Roo.bootstrap.NavItem.superclass.onRender.call(this, ct, position); this.navLink = this.el.select('.nav-link',true).first(); + this.htmlEl = this.el.hasClass('nav-html') ? this.el : this.el.select('.nav-html',true).first(); return ret; }, @@ -363,7 +365,17 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { Roo.get(c).scrollTo('top', options.value, true); return; - } + }, + /** + * Set the HTML (text content) of the item + * @param {string} html content for the nav item + */ + setHtml : function(html) + { + this.html = html; + this.htmlEl.dom.innerHTML = html; + + } }); diff --git a/Roo/data/ArrayReader.js b/Roo/data/ArrayReader.js index 07c0e5da0b..82cda2a21f 100644 --- a/Roo/data/ArrayReader.js +++ b/Roo/data/ArrayReader.js @@ -62,35 +62,35 @@ Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, { readRecords : function(o) { var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; + var recordType = this.recordType, fields = recordType.prototype.fields; + var records = []; + var root = o; + for(var i = 0; i < root.length; i++){ + var n = root[i]; + var values = {}; + var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; + var v = n[k] !== undefined ? n[k] : f.defaultValue; + v = f.convert(v); + values[f.name] = v; + } + var record = new recordType(values, id); + record.json = n; + records[records.length] = record; + } + return { + records : records, + totalRecords : records.length + }; }, // used when loading children.. @see loadDataFromChildren toLoadData: function(rec) { - // expect rec just to be an array.. eg [a,b,c, [...] << cn ] - return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; - + // expect rec just to be an array.. eg [a,b,c, [...] << cn ] + return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; + } diff --git a/docs/json/roodata.json b/docs/json/roodata.json index bf8e6e74a8..9bd92be106 100644 --- a/docs/json/roodata.json +++ b/docs/json/roodata.json @@ -20206,6 +20206,12 @@ ], "memberOf" : "Roo.bootstrap.Element" }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element" + }, { "name" : "style", "type" : "String", @@ -20634,6 +20640,12 @@ ], "memberOf" : "Roo.bootstrap.Element" }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element" + }, { "name" : "style", "type" : "String", @@ -21062,6 +21074,12 @@ ], "memberOf" : "Roo.bootstrap.Element" }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element" + }, { "name" : "style", "type" : "String", @@ -28833,6 +28851,12 @@ ], "memberOf" : "Roo.bootstrap.Element" }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element" + }, { "name" : "style", "type" : "String", @@ -29261,6 +29285,12 @@ ], "memberOf" : "" }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "" + }, { "name" : "style", "type" : "String", @@ -43491,6 +43521,14 @@ "static" : false, "memberOf" : "Roo.Component" }, + { + "name" : "setHtml", + "type" : "function", + "desc" : "Set the HTML (text content) of the item", + "sig" : "(html)", + "static" : false, + "memberOf" : "" + }, { "name" : "setVisibilityEl", "type" : "function", @@ -45278,6 +45316,14 @@ "static" : false, "memberOf" : "Roo.Component" }, + { + "name" : "setHtml", + "type" : "function", + "desc" : "Set the HTML (text content) of the item", + "sig" : "(html)", + "static" : false, + "memberOf" : "Roo.bootstrap.NavItem" + }, { "name" : "setVisibilityEl", "type" : "function", diff --git a/docs/src/Roo_bootstrap_Card.js.html b/docs/src/Roo_bootstrap_Card.js.html index 10e645d97a..1ef63da5a5 100644 --- a/docs/src/Roo_bootstrap_Card.js.html +++ b/docs/src/Roo_bootstrap_Card.js.html @@ -149,6 +149,7 @@ headerEl : false, header_imageEl : false, + layoutCls : function() { var cls = ''; @@ -404,11 +405,11 @@ if (this.rotateable) { this.el.select('.card-header',true).on('click', this.onToggleRotate, this); } - this.collapsableEl = this.el.select('.roo-collapsable').first(); + this.collapsableEl = this.el.select('.roo-collapsable',true).first(); - this.footerEl = this.el.select('.card-footer').first(); - this.collapsableToggleEl = this.el.select('.roo-collapse-toggle'); - this.headerContainerEl = this.el.select('.roo-card-header-ctr').first(); + this.footerEl = this.el.select('.card-footer',true).first(); + this.collapsableToggleEl = this.el.select('.roo-collapse-toggle',true).first(); + this.headerContainerEl = this.el.select('.roo-card-header-ctr',true).first(); this.headerEl = this.el.select('.card-header',true).first(); if (this.rotated) { diff --git a/docs/src/Roo_bootstrap_Element.js.html b/docs/src/Roo_bootstrap_Element.js.html index 986f374f76..0644ada6c9 100644 --- a/docs/src/Roo_bootstrap_Element.js.html +++ b/docs/src/Roo_bootstrap_Element.js.html @@ -14,6 +14,8 @@ * @cfg {String} cls class of the element * @cfg {Boolean} preventDefault (true|false) default false * @cfg {Boolean} clickable (true|false) default false + * @cfg {String} role default blank - set to button to force cursor pointer + * * @constructor * Create a new Element @@ -45,6 +47,7 @@ preventDefault: false, clickable: false, tapedTwice : false, + role : false, getAutoCreate : function(){ @@ -53,6 +56,9 @@ // cls: this.cls, double assign in parent class Component.js :: onRender html: this.html }; + if (this.role !== false) { + cfg.role = this.role; + } return cfg; }, @@ -74,8 +80,8 @@ e.preventDefault(); } - this.fireEvent('dblclick', this, e); - }, + this.fireEvent('click', this, e); // why was this double click before? + }, diff --git a/docs/src/Roo_bootstrap_NavItem.js.html b/docs/src/Roo_bootstrap_NavItem.js.html index 030a2cf9fa..bf938a3ebd 100644 --- a/docs/src/Roo_bootstrap_NavItem.js.html +++ b/docs/src/Roo_bootstrap_NavItem.js.html @@ -107,8 +107,10 @@ cfg.href = this.href; } if (this.fa) { - cfg.html = '<i class="fa fas fa-'+this.fa+'"></i> <span>' + this.html + '</span>'; - } + cfg.html = '<i class="fa fas fa-'+this.fa+'"></i> <span class="nav-html">' + this.html + '</span>'; + } else { + cfg.cls += " nav-html"; + } // menu .. should add dropdown-menu class - so no need for carat.. @@ -124,7 +126,8 @@ { tag: this.tagtype, href : this.href || "#", - html: this.html || '' + html: this.html || '', + cls : '' } ]; if (this.tagtype == 'a') { @@ -132,23 +135,21 @@ } if (this.icon) { - cfg.cn[0].html = '<i class="'+this.icon+'"></i> <span>' + cfg.cn[0].html + '</span>'; - } - if (this.fa) { - cfg.cn[0].html = '<i class="fa fas fa-'+this.fa+'"></i> <span>' + cfg.cn[0].html + '</span>'; - } - if(this.glyphicon) { + cfg.cn[0].html = '<i class="'+this.icon+'"></i> <span class="nav-html">' + cfg.cn[0].html + '</span>'; + } else if (this.fa) { + cfg.cn[0].html = '<i class="fa fas fa-'+this.fa+'"></i> <span class="nav-html">' + cfg.cn[0].html + '</span>'; + } else if(this.glyphicon) { cfg.cn[0].html = '<span class="glyphicon glyphicon-' + this.glyphicon + '"></span> ' + cfg.cn[0].html; - } + } else { + cfg.cn[0].cls += " nav-html"; + } if (this.menu) { - cfg.cn[0].html += " <span class='caret'></span>"; } if (this.badge !== '') { - cfg.cn[0].html += ' <span class="badge badge-secondary">' + this.badge + '</span>'; } } @@ -166,6 +167,7 @@ var ret = Roo.bootstrap.NavItem.superclass.onRender.call(this, ct, position); this.navLink = this.el.select('.nav-link',true).first(); + this.htmlEl = this.el.hasClass('nav-html') ? this.el : this.el.select('.nav-html',true).first(); return ret; }, @@ -363,6 +365,16 @@ Roo.get(c).scrollTo('top', options.value, true); return; + }, + /** + * Set the HTML (text content) of the item + * @param {string} html content for the nav item + */ + setHtml : function(html) + { + this.html = html; + this.htmlEl.dom.innerHTML = html; + } }); diff --git a/docs/src/Roo_data_ArrayReader.js.html b/docs/src/Roo_data_ArrayReader.js.html index 7966ceb4e0..7666b36da4 100644 --- a/docs/src/Roo_data_ArrayReader.js.html +++ b/docs/src/Roo_data_ArrayReader.js.html @@ -62,34 +62,34 @@ var myReader = new Roo.data.ArrayReader({ readRecords : function(o) { var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; + var recordType = this.recordType, fields = recordType.prototype.fields; + var records = []; + var root = o; + for(var i = 0; i < root.length; i++){ + var n = root[i]; + var values = {}; + var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; + var v = n[k] !== undefined ? n[k] : f.defaultValue; + v = f.convert(v); + values[f.name] = v; + } + var record = new recordType(values, id); + record.json = n; + records[records.length] = record; + } + return { + records : records, + totalRecords : records.length + }; }, // used when loading children.. @see loadDataFromChildren toLoadData: function(rec) { - // expect rec just to be an array.. eg [a,b,c, [...] << cn ] - return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; + // expect rec just to be an array.. eg [a,b,c, [...] << cn ] + return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; } diff --git a/docs/symbols/Roo.bootstrap.CardFooter.json b/docs/symbols/Roo.bootstrap.CardFooter.json index 6d6892f5bd..61c3f33bca 100644 --- a/docs/symbols/Roo.bootstrap.CardFooter.json +++ b/docs/symbols/Roo.bootstrap.CardFooter.json @@ -149,6 +149,13 @@ "memberOf" : "Roo.bootstrap.Component", "values" : [] }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element", + "values" : [] + }, { "name" : "name", "type" : "string", diff --git a/docs/symbols/Roo.bootstrap.CardHeader.json b/docs/symbols/Roo.bootstrap.CardHeader.json index 88e74d67b3..9baf1724a4 100644 --- a/docs/symbols/Roo.bootstrap.CardHeader.json +++ b/docs/symbols/Roo.bootstrap.CardHeader.json @@ -149,6 +149,13 @@ "memberOf" : "Roo.bootstrap.Component", "values" : [] }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element", + "values" : [] + }, { "name" : "name", "type" : "string", diff --git a/docs/symbols/Roo.bootstrap.CardImageTop.json b/docs/symbols/Roo.bootstrap.CardImageTop.json index 02668293c7..b297a05f97 100644 --- a/docs/symbols/Roo.bootstrap.CardImageTop.json +++ b/docs/symbols/Roo.bootstrap.CardImageTop.json @@ -149,6 +149,13 @@ "memberOf" : "Roo.bootstrap.Component", "values" : [] }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element", + "values" : [] + }, { "name" : "name", "type" : "string", diff --git a/docs/symbols/Roo.bootstrap.DropTarget.json b/docs/symbols/Roo.bootstrap.DropTarget.json index 0ff53f9f43..f69f9fbfdd 100644 --- a/docs/symbols/Roo.bootstrap.DropTarget.json +++ b/docs/symbols/Roo.bootstrap.DropTarget.json @@ -156,6 +156,13 @@ "memberOf" : "Roo.bootstrap.DropTarget", "values" : [] }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element", + "values" : [] + }, { "name" : "disableClass", "type" : "String", diff --git a/docs/symbols/Roo.bootstrap.Element.json b/docs/symbols/Roo.bootstrap.Element.json index bdb9b62aae..9904f2e08f 100644 --- a/docs/symbols/Roo.bootstrap.Element.json +++ b/docs/symbols/Roo.bootstrap.Element.json @@ -148,6 +148,13 @@ "memberOf" : "Roo.bootstrap.Component", "values" : [] }, + { + "name" : "role", + "type" : "String", + "desc" : "default blank - set to button to force cursor pointer", + "memberOf" : "Roo.bootstrap.Element", + "values" : [] + }, { "name" : "name", "type" : "string", diff --git a/docs/symbols/Roo.bootstrap.NavItem.json b/docs/symbols/Roo.bootstrap.NavItem.json index d44ce5225e..f1c3e340ef 100644 --- a/docs/symbols/Roo.bootstrap.NavItem.json +++ b/docs/symbols/Roo.bootstrap.NavItem.json @@ -286,6 +286,27 @@ } ] }, + { + "name" : "setHtml", + "desc" : "Set the HTML (text content) of the item", + "isStatic" : false, + "isConstructor" : false, + "isPrivate" : false, + "memberOf" : "Roo.bootstrap.NavItem", + "example" : "", + "deprecated" : "", + "since" : "", + "see" : "", + "params" : [ + { + "name" : "html", + "type" : "string", + "desc" : "content for the nav item", + "isOptional" : false + } + ], + "returns" : [] + }, { "name" : "hide", "desc" : "Hide a component - adds 'hidden' class", diff --git a/docs/symbols/Roo.bootstrap.NavSidebarItem.json b/docs/symbols/Roo.bootstrap.NavSidebarItem.json index 55b45c9a57..5febe20aff 100644 --- a/docs/symbols/Roo.bootstrap.NavSidebarItem.json +++ b/docs/symbols/Roo.bootstrap.NavSidebarItem.json @@ -287,6 +287,27 @@ } ] }, + { + "name" : "setHtml", + "desc" : "Set the HTML (text content) of the item", + "isStatic" : false, + "isConstructor" : false, + "isPrivate" : false, + "memberOf" : "Roo.bootstrap.NavItem", + "example" : "", + "deprecated" : "", + "since" : "", + "see" : "", + "params" : [ + { + "name" : "html", + "type" : "string", + "desc" : "content for the nav item", + "isOptional" : false + } + ], + "returns" : [] + }, { "name" : "hide", "desc" : "Hide a component - adds 'hidden' class", diff --git a/roojs-bootstrap-debug.js b/roojs-bootstrap-debug.js index bf44b9efce..72b6b0d3ef 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -650,6 +650,8 @@ Roo.extend(Roo.bootstrap.Component, Roo.BoxComponent, { * @cfg {String} cls class of the element * @cfg {Boolean} preventDefault (true|false) default false * @cfg {Boolean} clickable (true|false) default false + * @cfg {String} role default blank - set to button to force cursor pointer + * * @constructor * Create a new Element @@ -681,6 +683,7 @@ Roo.extend(Roo.bootstrap.Element, Roo.bootstrap.Component, { preventDefault: false, clickable: false, tapedTwice : false, + role : false, getAutoCreate : function(){ @@ -689,6 +692,9 @@ Roo.extend(Roo.bootstrap.Element, Roo.bootstrap.Component, { // cls: this.cls, double assign in parent class Component.js :: onRender html: this.html }; + if (this.role !== false) { + cfg.role = this.role; + } return cfg; }, @@ -710,7 +716,7 @@ Roo.extend(Roo.bootstrap.Element, Roo.bootstrap.Component, { e.preventDefault(); } - this.fireEvent('dblclick', this, e); + this.fireEvent('click', this, e); // why was this double click before? }, @@ -2095,6 +2101,7 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { headerEl : false, header_imageEl : false, + layoutCls : function() { var cls = ''; @@ -2350,11 +2357,11 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { if (this.rotateable) { this.el.select('.card-header',true).on('click', this.onToggleRotate, this); } - this.collapsableEl = this.el.select('.roo-collapsable').first(); + this.collapsableEl = this.el.select('.roo-collapsable',true).first(); - this.footerEl = this.el.select('.card-footer').first(); - this.collapsableToggleEl = this.el.select('.roo-collapse-toggle'); - this.headerContainerEl = this.el.select('.roo-card-header-ctr').first(); + this.footerEl = this.el.select('.card-footer',true).first(); + this.collapsableToggleEl = this.el.select('.roo-collapse-toggle',true).first(); + this.headerContainerEl = this.el.select('.roo-card-header-ctr',true).first(); this.headerEl = this.el.select('.card-header',true).first(); if (this.rotated) { @@ -6183,8 +6190,10 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { cfg.href = this.href; } if (this.fa) { - cfg.html = ' ' + this.html + ''; - } + cfg.html = ' ' + this.html + ''; + } else { + cfg.cls += " nav-html"; + } // menu .. should add dropdown-menu class - so no need for carat.. @@ -6200,7 +6209,8 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { { tag: this.tagtype, href : this.href || "#", - html: this.html || '' + html: this.html || '', + cls : '' } ]; if (this.tagtype == 'a') { @@ -6208,23 +6218,21 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { } if (this.icon) { - cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; - } - if (this.fa) { - cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; - } - if(this.glyphicon) { + cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; + } else if (this.fa) { + cfg.cn[0].html = ' ' + cfg.cn[0].html + ''; + } else if(this.glyphicon) { cfg.cn[0].html = ' ' + cfg.cn[0].html; - } + } else { + cfg.cn[0].cls += " nav-html"; + } if (this.menu) { - cfg.cn[0].html += " "; } if (this.badge !== '') { - cfg.cn[0].html += ' ' + this.badge + ''; } } @@ -6242,6 +6250,7 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { var ret = Roo.bootstrap.NavItem.superclass.onRender.call(this, ct, position); this.navLink = this.el.select('.nav-link',true).first(); + this.htmlEl = this.el.hasClass('nav-html') ? this.el : this.el.select('.nav-html',true).first(); return ret; }, @@ -6439,7 +6448,17 @@ Roo.extend(Roo.bootstrap.NavItem, Roo.bootstrap.Component, { Roo.get(c).scrollTo('top', options.value, true); return; - } + }, + /** + * Set the HTML (text content) of the item + * @param {string} html content for the nav item + */ + setHtml : function(html) + { + this.html = html; + this.htmlEl.dom.innerHTML = html; + + } }); @@ -14983,35 +15002,35 @@ Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, { readRecords : function(o) { var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; + var recordType = this.recordType, fields = recordType.prototype.fields; + var records = []; + var root = o; + for(var i = 0; i < root.length; i++){ + var n = root[i]; + var values = {}; + var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; + var v = n[k] !== undefined ? n[k] : f.defaultValue; + v = f.convert(v); + values[f.name] = v; + } + var record = new recordType(values, id); + record.json = n; + records[records.length] = record; + } + return { + records : records, + totalRecords : records.length + }; }, // used when loading children.. @see loadDataFromChildren toLoadData: function(rec) { - // expect rec just to be an array.. eg [a,b,c, [...] << cn ] - return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; - + // expect rec just to be an array.. eg [a,b,c, [...] << cn ] + return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; + } diff --git a/roojs-bootstrap.js b/roojs-bootstrap.js index 5b624454c6..2f3837ca8e 100644 --- a/roojs-bootstrap.js +++ b/roojs-bootstrap.js @@ -25,9 +25,9 @@ return cn;}var I=A.items;delete A.items;if(!skip_children){for(var i=0;i0?'below':D;C.items_n=i>0?i-1:0;C.card_n=F>0?F-1:0;C.card=C.cards[C.card_n];}}if(!C.cards.length){C.card=true;C.position='below'; @@ -253,10 +253,11 @@ return false;}return true;});return r;}});Roo.apply(Roo.bootstrap.NavGroup,{grou // Roo/bootstrap/NavItem.js Roo.bootstrap.NavItem=function(A){Roo.bootstrap.NavItem.superclass.constructor.call(this,A);this.addEvents({"click":true,'changed':true,'scrollto':true});};Roo.extend(Roo.bootstrap.NavItem,Roo.bootstrap.Component,{href:false,html:'',badge:'',icon:false,fa:false,glyphicon:false,active:false,preventDefault:false,tabId:false,tagtype:'a',tag:'li',disabled:false,animateRef:false,was_active:false,button_weight:'',button_outline:false,linkcls:'',navLink:false,getAutoCreate:function(){var A={tag:this.tag,cls:'nav-item'} ;A.cls=typeof(A.cls)=='undefined'?'':A.cls;if(this.active){A.cls+=' active';}if(this.disabled){A.cls+=' disabled';}if(this.button_weight.length){A.tag=this.href?'a':'button';A.html=this.html||'';A.cls+=' btn btn'+(this.button_outline?'-outline':'')+'-'+this.button_weight; -if(this.href){A.href=this.href;}if(this.fa){A.html=' '+this.html+'';}if(this.badge!==''){A.html+=' '+this.badge+'';}return A;}if(this.href||this.html||this.glyphicon||this.icon||this.fa){A.cn=[{tag:this.tagtype,href:this.href||"#",html:this.html||''} -];if(this.tagtype=='a'){A.cn[0].cls='nav-link'+(this.active?' active':'')+' '+this.linkcls;}if(this.icon){A.cn[0].html=' '+A.cn[0].html+'';}if(this.fa){A.cn[0].html=' '+A.cn[0].html+''; -}if(this.glyphicon){A.cn[0].html=' '+A.cn[0].html;}if(this.menu){A.cn[0].html+=" ";}if(this.badge!==''){A.cn[0].html+=' '+this.badge+''; -}}return A;},onRender:function(ct,A){if(Roo.bootstrap.version==4&&ct.dom.type!='ul'){this.tag='div';}var B=Roo.bootstrap.NavItem.superclass.onRender.call(this,ct,A);this.navLink=this.el.select('.nav-link',true).first();return B;},initEvents:function(){if(typeof(this.menu)!='undefined'){this.menu.parentType=this.xtype; +if(this.href){A.href=this.href;}if(this.fa){A.html=' '+this.html+'';}else{A.cls+=" nav-html";}if(this.badge!==''){A.html+=' '+this.badge+'';}return A; +}if(this.href||this.html||this.glyphicon||this.icon||this.fa){A.cn=[{tag:this.tagtype,href:this.href||"#",html:this.html||'',cls:''}];if(this.tagtype=='a'){A.cn[0].cls='nav-link'+(this.active?' active':'')+' '+this.linkcls;}if(this.icon){A.cn[0].html=' '+A.cn[0].html+''; +}else if(this.fa){A.cn[0].html=' '+A.cn[0].html+'';}else if(this.glyphicon){A.cn[0].html=' '+A.cn[0].html;}else{A.cn[0].cls+=" nav-html"; +}if(this.menu){A.cn[0].html+=" ";}if(this.badge!==''){A.cn[0].html+=' '+this.badge+'';}}return A;},onRender:function(ct,A){if(Roo.bootstrap.version==4&&ct.dom.type!='ul'){this.tag='div'; +}var B=Roo.bootstrap.NavItem.superclass.onRender.call(this,ct,A);this.navLink=this.el.select('.nav-link',true).first();this.htmlEl=this.el.hasClass('nav-html')?this.el:this.el.select('.nav-html',true).first();return B;},initEvents:function(){if(typeof(this.menu)!='undefined'){this.menu.parentType=this.xtype; this.menu.triggerEl=this.el;this.menu=this.addxtype(Roo.apply({},this.menu));}this.el.on('click',this.onClick,this);this.parent().register(this);},onClick:function(e){if(e.getTarget('.dropdown-menu-item')){return;}if(this.preventDefault||this.href=='#'){Roo.log("NavItem - prevent Default?"); e.preventDefault();}if(this.disabled){return;}var tg=Roo.bootstrap.TabGroup.get(this.navId);if(tg&&tg.transition){Roo.log("waiting for the transitionend");return;}if(this.fireEvent('click',this,e)===false){return;};if(this.tagtype=='span'){return;}var A=this.el.select('a',true).first(); if(A&&this.animateRef&&this.href.indexOf('#')>-1){if(A.dom.href.split("#")[0]!=document.location.toString().split("#")[0]){return;}Roo.log("NavItem - prevent Default?");e.preventDefault();this.scrollToElement(e);}var p=this.parent();if(['tabs','pills'].indexOf(p.type)!==-1&&p.pilltype){if(typeof(p.setActiveItem)!=='undefined'){p.setActiveItem(this); @@ -265,7 +266,7 @@ if(nv){nv.clearWasActive(this);}}this.active=A;if(!A){this.el.removeClass('activ }}if(B){this.fireEvent('changed',this,A);}if(!this.navId||!this.tabId||!A||C){return;}var tg=Roo.bootstrap.TabGroup.get(this.navId);if(!tg){return;}var D=tg.getPanelByName(this.tabId);if(!D){return;}if(false==tg.showPanel(D)){var nv=Roo.bootstrap.NavGroup.get(this.navId); if(nv){var E=nv.getWasActive();if(E){E.setActive(true,false,true);}}}},setDisabled:function(A){this.disabled=A;if(!A){this.el.removeClass('disabled');}else if(!this.el.hasClass('disabled')){this.el.addClass('disabled');}},tooltipEl:function(){return this.el; },scrollToElement:function(e){var c=document.body;if(Roo.isFirefox||Roo.isIE||Roo.isIE11){c=document.documentElement;}var A=Roo.get(c).select('a[name='+this.href.split('#')[1]+']',true).first();if(!A){return;}var o=A.calcOffsetsTo(c);var B={target:A,value:o[1]} -;this.fireEvent('scrollto',this,B,e);Roo.get(c).scrollTo('top',B.value,true);return;}}); +;this.fireEvent('scrollto',this,B,e);Roo.get(c).scrollTo('top',B.value,true);return;},setHtml:function(A){this.html=A;this.htmlEl.dom.innerHTML=A;}}); // Roo/bootstrap/NavSidebarItem.js Roo.bootstrap.NavSidebarItem=function(A){Roo.bootstrap.NavSidebarItem.superclass.constructor.call(this,A);this.addEvents({"click":true,'changed':true});};Roo.extend(Roo.bootstrap.NavSidebarItem,Roo.bootstrap.NavItem,{badgeWeight:'default',open:false,buttonView:false,buttonWeight:'default',buttonSize:'md',showArrow:true,getAutoCreate:function(){var a={tag:'a',href:this.href||'#',cls:'',html:'',cn:[]} ;if(this.buttonView){a={tag:'button',href:this.href||'#',cls:'btn btn-'+this.buttonWeight+' btn-'+this.buttonSize+'roo-button-dropdown-toggle',html:this.html,cn:[]};}var A={tag:'li',cls:'',cn:[a]};if(this.active){A.cls+=' active';}if(this.disabled){A.cls+=' disabled'; diff --git a/roojs-debug.js b/roojs-debug.js index 3d77a39e61..84a06ea9c1 100644 --- a/roojs-debug.js +++ b/roojs-debug.js @@ -25231,35 +25231,35 @@ Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, { readRecords : function(o) { var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; + var recordType = this.recordType, fields = recordType.prototype.fields; + var records = []; + var root = o; + for(var i = 0; i < root.length; i++){ + var n = root[i]; + var values = {}; + var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; + var v = n[k] !== undefined ? n[k] : f.defaultValue; + v = f.convert(v); + values[f.name] = v; + } + var record = new recordType(values, id); + record.json = n; + records[records.length] = record; + } + return { + records : records, + totalRecords : records.length + }; }, // used when loading children.. @see loadDataFromChildren toLoadData: function(rec) { - // expect rec just to be an array.. eg [a,b,c, [...] << cn ] - return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; - + // expect rec just to be an array.. eg [a,b,c, [...] << cn ] + return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; + } diff --git a/roojs-ui-debug.js b/roojs-ui-debug.js index 53d7baa692..97097444c3 100644 --- a/roojs-ui-debug.js +++ b/roojs-ui-debug.js @@ -2197,35 +2197,35 @@ Roo.extend(Roo.data.ArrayReader, Roo.data.JsonReader, { readRecords : function(o) { var sid = this.meta ? this.meta.id : null; - var recordType = this.recordType, fields = recordType.prototype.fields; - var records = []; - var root = o; - for(var i = 0; i < root.length; i++){ - var n = root[i]; - var values = {}; - var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); - for(var j = 0, jlen = fields.length; j < jlen; j++){ - var f = fields.items[j]; - var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; - var v = n[k] !== undefined ? n[k] : f.defaultValue; - v = f.convert(v); - values[f.name] = v; - } - var record = new recordType(values, id); - record.json = n; - records[records.length] = record; - } - return { - records : records, - totalRecords : records.length - }; + var recordType = this.recordType, fields = recordType.prototype.fields; + var records = []; + var root = o; + for(var i = 0; i < root.length; i++){ + var n = root[i]; + var values = {}; + var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null); + for(var j = 0, jlen = fields.length; j < jlen; j++){ + var f = fields.items[j]; + var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j; + var v = n[k] !== undefined ? n[k] : f.defaultValue; + v = f.convert(v); + values[f.name] = v; + } + var record = new recordType(values, id); + record.json = n; + records[records.length] = record; + } + return { + records : records, + totalRecords : records.length + }; }, // used when loading children.. @see loadDataFromChildren toLoadData: function(rec) { - // expect rec just to be an array.. eg [a,b,c, [...] << cn ] - return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; - + // expect rec just to be an array.. eg [a,b,c, [...] << cn ] + return typeof(rec.data.cn) == 'undefined' ? [] : rec.data.cn; + } -- 2.39.2