X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fbootstrap%2FCard.js;h=bd6467cbc07bd064ad1d5ffdfd0c38264adcb7bf;hb=1ead8465ba5774e3df216f91f4ccb72ed4ff894e;hp=0f6524f32e9867aacfadff1508bbe4eef4992724;hpb=5f478f86791ed6ac1758b37f4016b345f1ce2943;p=roojs1 diff --git a/Roo/bootstrap/Card.js b/Roo/bootstrap/Card.js index 0f6524f32e..bd6467cbc0 100644 --- a/Roo/bootstrap/Card.js +++ b/Roo/bootstrap/Card.js @@ -9,10 +9,13 @@ * * * possible... may not be implemented.. - * @cfg {String} header content of header (for panel) + * @cfg {String} header_image + * @cfg {String|Object} header + * @cfg {String|Object} header_size (0|1|2|3|4|5) H1 or H2 etc.. 0 indicates default + * * @cfg {String|Object} title * @cfg {String|Object} subtitle - * @cfg {String|Object} body + * @cfg {String} html -- html contents - or just use children.. * @cfg {String|Object} footer * @cfg {Array} - links * @@ -56,6 +59,7 @@ Roo.bootstrap.Card = function(config){ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { + weight : '', margin: '', /// may be better in component? @@ -80,6 +84,12 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { display_lg: '', display_xl: '', + header_image : '', + header : '', + header_size : 0, + title : '', + subtitle : '', + html : '', layoutCls : function() { @@ -103,8 +113,13 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { } }); + // more generic support? + if (this.hidden) { + cls += ' d-none'; + } + return cls; - } + }, // Roo.log("Call onRender: " + this.xtype); /* We are looking at something like this. @@ -131,9 +146,9 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { getAutoCreate : function(){ var cfg = { - tag : this.tag || 'div', - html : '', - cls : 'card' + tag : 'div', + cls : 'card', + cn : [ ] }; if (this.weight.length && this.weight != 'light') { @@ -143,131 +158,47 @@ Roo.extend(Roo.bootstrap.Card, Roo.bootstrap.Component, { cfg.cls += ' bg-' + this.weight; } - // margin? - if (this.margin.length) { - var bits = this.margin.split(" "); - bits.forEach(function (b) { - cfg.cls += ' m' + (b.length == 1 ? '-' : '') + b; + cfg.cls += this.layoutCls(); + + if (this.header.length) { + cfg.cn.push({ + tag : this.header_size > 0 ? 'h' + this.header_size : 'div', + cls : 'card-header', + html : this.header // escape? }); } - if (this.padding.length) { - var bits = this.padding.split(" "); - bits.forEach(function (b) { - cfg.cls += ' p' + (b.length == 1 ? '-' : '') + b; + if (this.header_image.length) { + cfg.cn.push({ + tag : 'img', + cls : 'card-img-top', + src: this.header_image // escape? }); } - // - this is applied by the parent.. - //if (this.cls) { - // cfg.cls = this.cls + ''; - //} - - if (this.sticky.length) { - - var bd = Roo.get(document.body); - if (!bd.hasClass('bootstrap-sticky')) { - bd.addClass('bootstrap-sticky'); - Roo.select('html',true).setStyle('height', '100%'); - } - - cfg.cls += 'bootstrap-sticky-' + this.sticky; - } - - - if (this.well.length) { - switch (this.well) { - case 'lg': - case 'sm': - cfg.cls +=' well well-' +this.well; - break; - default: - cfg.cls +=' well'; - break; - } - } - - if (this.hidden) { - cfg.cls += ' hidden'; - } - + var body = { + tag : 'div', + cls : 'card-body', + cn : [] + }; + cfg.push(body); - if (this.alert && ["success","info","warning", "danger"].indexOf(this.alert) > -1) { - cfg.cls +=' alert alert-' + this.alert; + if (this.title.length) { + body.cn.push({ + tag : 'div', + cls : 'card-title', + src: this.title // escape? + }); } - var body = cfg; - - if (this.panel.length) { - cfg.cls += ' panel panel-' + this.panel; - cfg.cn = []; - if (this.header.length) { - - var h = []; - - if(this.expandable){ - - cfg.cls = cfg.cls + ' expandable'; - - h.push({ - tag: 'i', - cls: (this.expanded ? 'fa fa-minus' : 'fa fa-plus') - }); - - } - - h.push( - { - tag: 'span', - cls : 'panel-title', - html : (this.expandable ? ' ' : '') + this.header - }, - { - tag: 'span', - cls: 'panel-header-right', - html: this.rheader - } - ); - - cfg.cn.push({ - cls : 'panel-heading', - style : this.expandable ? 'cursor: pointer' : '', - cn : h - }); - - } - - body = false; - cfg.cn.push({ - cls : 'panel-body' + (this.expanded ? '' : ' hide'), - html : this.html + if (this.subtitle.length) { + body.cn.push({ + tag : 'div', + cls : 'card-title', + src: this.subtitle // escape? }); - - - if (this.footer.length) { - cfg.cn.push({ - cls : 'panel-footer', - html : this.footer - - }); - } - } - if (body) { - body.html = this.html || cfg.html; - // prefix with the icons.. - if (this.fa) { - body.html = '' + body.html ; - } - if (this.icon) { - body.html = '' + body.html ; - } - - - } - if ((!this.cls || !this.cls.length) && (!cfg.cls || !cfg.cls.length)) { - cfg.cls = 'container'; - } + return cfg; },