* @cfg {Boolean} allow_close default true
* @cfg {Boolean} fitwindow default false
* @cfg {String} size (sm|lg) default empty
+ * @cfg {Number} max_width set the max width of modal
*
*
* @constructor
closeEl: false,
size: '',
+
+ max_width: 0,
onRender : function(ct, position)
this.footerEl = this.el.select('.modal-footer',true).first();
this.maskEl = Roo.DomHelper.append(document.body, {tag: "div", cls:"x-dlg-mask"}, true);
- this.maskEl.enableDisplayMode("block");
- this.maskEl.hide();
+
//this.el.addClass("x-dlg-modal");
if (this.buttons.length) {
},
- getAutoCreate : function(){
-
-
+ getAutoCreate : function()
+ {
var bdy = {
cls : 'modal-body',
html : this.html || ''
resize : function()
{
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);
}
+
+ if(!this.fitwindow && this.max_width !== 0){
+ var w = Math.min(this.max_width, Roo.lib.Dom.getViewportWidth(true) - 30);
+ var view_height = Roo.lib.Dom.getViewportHeight(true) - 60; //without padding
+
+ this.setSize(w, this.height || view_height);
+ Roo.log(this.bodyEl.dom.offsetHeight);
+
+ //
+ // if(
+ // (
+ // this.headerEl.getHeight() +
+ // this.bodyEl.getHeight() +
+ // this.footerEl.getHeight()
+ // ) > view_height) {
+ // } {
+ // this.setSize(w,view_height);
+ // }
+ }
+
},
setSize : function(w,h)
}
//this.el.setStyle('display', 'block');
+ this.el.removeClass('hideing');
this.el.addClass('show');
if(this.animate){ // element has 'fade' - so stuff happens after .3s ?- not sure why the delay?
}).defer(50, this);
}else{
this.el.addClass('in');
-
}
// not sure how we can show data in here..
this.maskEl.setSize(Roo.lib.Dom.getViewWidth(true), Roo.lib.Dom.getViewHeight(true));
this.maskEl.setStyle('z-index', Roo.bootstrap.Modal.zIndex++);
- this.maskEl.show();
+ this.maskEl.addClass('show');
this.resize();
hide : function()
{
if(this.fireEvent("beforehide", this) !== false){
- this.maskEl.hide();
+ this.maskEl.removeClass('show');
Roo.get(document.body).removeClass("x-body-masked");
this.el.removeClass('in');
this.el.select('.modal-dialog', true).first().setStyle('transform','');
if(this.animate){ // why
this.el.addClass('hideing');
(function(){
- this.el.removeClass('show');
- this.el.removeClass('hideing');
+ if (!this.el.hasClass('hideing')) {
+ return; // it's been shown again...
+ }
+ this.el.removeClass('show');
+ this.el.removeClass('hideing');
}).defer(150,this);
}else{