From: Alan Knowles Date: Thu, 11 Feb 2021 03:43:10 +0000 (+0800) Subject: roojs-bootstrap.js X-Git-Url: http://git.roojs.org/?p=roojs1;a=commitdiff_plain;h=eaa7b28058c00b61a5961e0db5f59278962595c2 roojs-bootstrap.js roojs-bootstrap-debug.js --- diff --git a/roojs-bootstrap-debug.js b/roojs-bootstrap-debug.js index 171ed6b97d..8eac0fa761 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -19785,10 +19785,12 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { Roo.bootstrap.Popover.register(this); } - + this.arrowEl = this.el.select('.arrow',true).first(); this.headerEl.setVisibilityMode(Roo.Element.DISPLAY); // probably not needed as it's default in BS4 this.el.enableDisplayMode('block'); this.el.hide(); + + if (this.over === false && !this.parent()) { return; } @@ -19811,7 +19813,6 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { on_el.on(eventOut, this.leave, this); } }, this); - }, @@ -19859,7 +19860,8 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { }, /** * Show the popover - * @param {Roo.Element|string|false} - element to align and point to. (set align to [ pos, offset ]) + * @param {Roo.Element|string|Boolean} - element to align and point to. (set align to [ pos, offset ]) + * @param {string} (left|right|top|bottom) position */ show : function (on_el) { @@ -19916,13 +19918,15 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { var box = this.el.getBox(); - align = align || Roo.bootstrap.Popover.alignment[placement]; - this.el.addClass(align[2]); + this.alignment = align || Roo.bootstrap.Popover.alignment[placement]; + this.el.addClass(this.alignment[2]); // Roo.log(align); if (on_el) { - this.el.alignTo(on_el, align[0],align[1]); + this.alignEl = on_el; + this.updatePosition(); + } else { // this is usually just done by the builder = to show the popoup in the middle of the scren. var es = this.el.getSize(); @@ -19938,10 +19942,7 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { this.el.addClass('in'); - - if (this.el.hasClass('fade')) { - // fade it? - } + this.hoverState = 'in'; @@ -19952,12 +19953,29 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { this.maskEl.addClass('show'); } this.el.setStyle('z-index', Roo.bootstrap.Popover.zIndex++); - + + this.fireEvent('show', this); + }, + /** + * fire this manually after loading a grid in the table for example + * + */ + updatePosition : function() + { + if (!this.alignEl || !this.alignment) { + return; + } + this.el.alignTo(this.alignEl , this.alignment[0],this.alignment[1]); - this.fireEvent('show', this); + // work out the pointy position. + var p1 = this.alignment[0].split('-').pop().replace('?',''); + var xy = this.alignEl.getAnchorXY(p1, false); + xy[0]+=2;xy[1]+=5; + this.arrowEl.setXY(xy); }, + hide : function() { this.el.setXY([0,0]); diff --git a/roojs-bootstrap.js b/roojs-bootstrap.js index 9a60d0172b..5a40e04663 100644 --- a/roojs-bootstrap.js +++ b/roojs-bootstrap.js @@ -814,16 +814,17 @@ Roo.bootstrap.Popover=function(A){Roo.bootstrap.Popover.superclass.constructor.c ,{cls:'popover-content popover-body '+(this.cls||''),html:this.html||''}]}]};return A;},setTitle:function(A){this.title=A;if(this.el){this.headerEl.dom.innerHTML=A;}},setContent:function(A){this.html=A;if(this.contentEl){this.contentEl.dom.innerHTML=A;}},onRender:function(ct,A){Roo.bootstrap.Component.superclass.onRender.call(this,ct,A); if(!this.el){var B=Roo.apply({},this.getAutoCreate());B.id=Roo.id();if(this.cls){B.cls+=' '+this.cls;}if(this.style){B.style=this.style;}this.el=Roo.get(document.body).createChild(B,A);}this.contentEl=this.el.select('.popover-content',true).first();this.headerEl=this.el.select('.popover-title',true).first(); var C=[];if(typeof(this.items)!='undefined'){var D=this.items;delete this.items;for(var i=0;i