* @type String
*/
defaultUnit : "px",
+
/**
* Sets the element's visibility mode. When setVisible() is called it
* will use this to determine whether to set the visibility or the display property.
*/
enableDisplayMode : function(display){
this.setVisibilityMode(El.DISPLAY);
- if(typeof display != "undefined") this.originalDisplay = display;
+ if(typeof display != "undefined") { this.originalDisplay = display; }
return this;
},
var p = Roo.fly(this.dom.parentNode, '_internal');
return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null;
},
+
+ /**
+ * Looks at the scrollable parent element
+ */
+ findScrollableParent : function()
+ {
+ var overflowRegex = /(auto|scroll)/;
+
+ if(this.getStyle('position') === 'fixed'){
+ return Roo.isAndroid ? Roo.get(document.documentElement) : Roo.get(document.body);
+ }
+
+ var excludeStaticParent = this.getStyle('position') === "absolute";
+
+ for (var parent = this; (parent = Roo.get(parent.dom.parentNode));){
+
+ if (excludeStaticParent && parent.getStyle('position') === "static") {
+ continue;
+ }
+
+ if (overflowRegex.test(parent.getStyle('overflow') + parent.getStyle('overflow-x') + parent.getStyle('overflow-y'))){
+ return parent;
+ }
+
+ if(parent.dom.nodeName.toLowerCase() == 'body'){
+ return Roo.isAndroid ? Roo.get(document.documentElement) : Roo.get(document.body);
+ }
+ }
+
+ return Roo.isAndroid ? Roo.get(document.documentElement) : Roo.get(document.body);
+ },
/**
* Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child).
* @return {Roo.Element} this
*/
scrollIntoView : function(container, hscroll){
- Roo.log('scrollIntoView!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
var c = Roo.getDom(container) || document.body;
var el = this.dom;
t = o[1],
b = t+el.offsetHeight,
r = l+el.offsetWidth;
- Roo.log(o);
- Roo.log([el.offsetHeight, el.offsetWidth]);
+
var ch = c.clientHeight;
- Roo.log(ch);
var ct = parseInt(c.scrollTop, 10);
var cl = parseInt(c.scrollLeft, 10);
- Roo.log([ct, cl]);
var cb = ct + ch;
var cr = cl + c.clientWidth;
-
if(t < ct){
c.scrollTop = t;
}else if(b > cb){
this.setHeight(oldHeight); // restore original height
this.setHeight(height, animate, duration, function(){
this.unclip();
- if(typeof onComplete == "function") onComplete();
+ if(typeof onComplete == "function") { onComplete(); }
}.createDelegate(this), easing);
}
}.createDelegate(this), 0);
if(!this._mask){
this._mask = Roo.DomHelper.append(this.dom, {cls:"roo-el-mask"}, true);
}
+
this.addClass("x-masked");
this._mask.setDisplayed(true);
// we wander
var z = 0;
- var dom = this.dom
+ var dom = this.dom;
while (dom && dom.style) {
if (!isNaN(parseInt(dom.style.zIndex))) {
z = Math.max(z, parseInt(dom.style.zIndex));
if(typeof msg == 'string'){
if(!this._maskMsg){
- this._maskMsg = Roo.DomHelper.append(this.dom, {cls:"roo-el-mask-msg", cn:{tag:'div'}}, true);
+ this._maskMsg = Roo.DomHelper.append(this.dom, {
+ cls: "roo-el-mask-msg",
+ cn: [
+ {
+ tag: 'i',
+ cls: 'fa fa-spinner fa-spin'
+ },
+ {
+ tag: 'div'
+ }
+ ]
+ }, true);
}
var mm = this._maskMsg;
mm.dom.className = msgCls ? "roo-el-mask-msg " + msgCls : "roo-el-mask-msg";
- if (mm.dom.firstChild) { // weird IE issue?
- mm.dom.firstChild.innerHTML = msg;
+ if (mm.dom.lastChild) { // weird IE issue?
+ mm.dom.lastChild.innerHTML = msg;
}
mm.setDisplayed(true);
mm.center(this);
var el = this.dom;
useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet;
for(var attr in o){
- if(attr == "style" || typeof o[attr] == "function") continue;
+ if(attr == "style" || typeof o[attr] == "function") { continue; }
if(attr=="cls"){
el.className = o["cls"];
}else{
- if(useSet) el.setAttribute(attr, o[attr]);
- else el[attr] = o[attr];
+ if(useSet) {
+ el.setAttribute(attr, o[attr]);
+ } else {
+ el[attr] = o[attr];
+ }
}
}
if(o.style){