animate : true,
fitwindow: false,
-
-
+
// private
dialogEl: false,
bodyEl: false,
size: '',
max_width: 0,
-
+
+ max_height: 0,
+
+ fit_content: false,
onRender : function(ct, position)
{
resize : function()
{
- this.maskEl.setSize(Roo.lib.Dom.getViewWidth(true), Roo.lib.Dom.getViewHeight(true));
+ this.maskEl.setSize(
+ Roo.lib.Dom.getViewWidth(true),
+ Roo.lib.Dom.getViewHeight(true)
+ );
if (this.fitwindow) {
- var w = this.width || Roo.lib.Dom.getViewportWidth(true) - 30;
- var h = this.height || Roo.lib.Dom.getViewportHeight(true) - 60;
- this.setSize(w,h);
+ this.setSize(
+ this.width || Roo.lib.Dom.getViewportWidth(true) - 30,
+ this.height || Roo.lib.Dom.getViewportHeight(true) - 60
+ );
+ return;
}
- if(!this.fitwindow && this.max_width !== 0){
+ if(this.max_width !== 0) {
+
var w = Math.min(this.max_width, Roo.lib.Dom.getViewportWidth(true) - 30);
- // var h = this.height || Roo.lib.Dom.getViewportHeight(true) - 60;
- this.setSize(w,this.height);
- var view_height = Roo.lib.Dom.getViewportHeight(true) - 60;
- var modal_height = this.headerEl.getHeight() + this.bodyEl.getHeight() + this.footerEl.getHeight();
+ if(this.height) {
+ this.setSize(w, this.height);
+ return;
+ }
- Roo.log(view_height);
- Roo.log(modal_height);
+ if(this.max_height) {
+ this.setSize(w,Math.min(
+ this.max_height,
+ Roo.lib.Dom.getViewportHeight(true) - 60
+ ));
+
+ return;
+ }
- if(
- (
- this.headerEl.getHeight() +
- this.bodyEl.getHeight() +
- this.footerEl.getHeight()
- ) > view_height) {
- } {
- this.setSize(w,view_height);
+ if(!this.fit_content) {
+ this.setSize(w, Roo.lib.Dom.getViewportHeight(true) - 60);
+ return;
}
+
+ this.setSize(w, Math.min(
+ 60 +
+ this.headerEl.getHeight() +
+ this.footerEl.getHeight() +
+ this.getChildHeight(this.bodyEl.dom.childNodes),
+ Roo.lib.Dom.getViewportHeight(true) - 60)
+ );
}
},
if (!w && !h) {
return;
}
+
this.resizeTo(w,h);
},
this.diff = this.dialogEl.getHeight() - this.bodyEl.getHeight();
}
- this.bodyEl.setHeight(h-this.diff);
+ this.bodyEl.setHeight(h - this.diff);
this.fireEvent('resize', this);
//code
}
this.tmpl.overwrite(this.bodyEl, obj);
+ },
+
+ getChildHeight : function(child_nodes)
+ {
+ if(
+ !child_nodes ||
+ child_nodes.length == 0
+ ) {
+ return;
+ }
+
+ var child_height = 0;
+
+ for(var i = 0; i < child_nodes.length; i++) {
+
+ /*
+ * for modal with tabs...
+ if(child_nodes[i].classList.contains('roo-layout-panel')) {
+
+ var layout_childs = child_nodes[i].childNodes;
+
+ for(var j = 0; j < layout_childs.length; j++) {
+
+ if(layout_childs[j].classList.contains('roo-layout-panel-body')) {
+
+ var layout_body_childs = layout_childs[j].childNodes;
+
+ for(var k = 0; k < layout_body_childs.length; k++) {
+
+ if(layout_body_childs[k].classList.contains('navbar')) {
+ child_height += layout_body_childs[k].offsetHeight;
+ continue;
+ }
+
+ if(layout_body_childs[k].classList.contains('roo-layout-tabs-body')) {
+
+ var layout_body_tab_childs = layout_body_childs[k].childNodes;
+
+ for(var m = 0; m < layout_body_tab_childs.length; m++) {
+
+ if(layout_body_tab_childs[m].classList.contains('roo-layout-active-content')) {
+ child_height += this.getChildHeight(layout_body_tab_childs[m].childNodes);
+ continue;
+ }
+
+ }
+
+ }
+
+ }
+ }
+ }
+ continue;
+ }
+ */
+
+ child_height += child_nodes[i].offsetHeight;
+ // Roo.log(child_nodes[i].offsetHeight);
+ }
+
+ return child_height;
}
});