Fix #6464 - card header
[roojs1] / Roo / bootstrap / MessageBox.js
index 7130003..76038e7 100644 (file)
@@ -35,6 +35,7 @@ Roo.bootstrap.MessageBox = function(){
     var bodyEl, msgEl, textboxEl, textareaEl, progressEl, pp;
     var buttons, activeTextEl, bwidth;
 
+    
     // private
     var handleButton = function(button){
         dlg.hide();
@@ -60,10 +61,11 @@ Roo.bootstrap.MessageBox = function(){
             buttons["cancel"].hide();
             buttons["yes"].hide();
             buttons["no"].hide();
-            //dlg.footer.dom.style.display = 'none';
+            dlg.footerEl.hide();
+            
             return width;
         }
-        dlg.footer.dom.style.display = '';
+        dlg.footerEl.show();
         for(var k in buttons){
             if(typeof buttons[k] != "function"){
                 if(b[k]){
@@ -95,7 +97,7 @@ Roo.bootstrap.MessageBox = function(){
          */
         getDialog : function(){
            if(!dlg){
-                dlg = new Roo.bootstrap.Modal("x-msg-box", {
+                dlg = new Roo.bootstrap.Modal( {
                     //draggable: true,
                     //resizable:false,
                     //constraintoviewport:false,
@@ -103,8 +105,8 @@ Roo.bootstrap.MessageBox = function(){
                     //collapsible : false,
                     //shim:true,
                     //modal: true,
-                    width:400,
-                    height:100,
+                //    width: 'auto',
+                  //  height:100,
                     //buttonAlign:"center",
                     closeClick : function(){
                         if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){
@@ -114,16 +116,19 @@ Roo.bootstrap.MessageBox = function(){
                         }
                     }
                 });
+                dlg.render();
                 dlg.on("hide", handleHide);
                 mask = dlg.mask;
                 //dlg.addKeyListener(27, handleEsc);
                 buttons = {};
+                this.buttons = buttons;
                 var bt = this.buttonText;
                 buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok"));
                 buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes"));
                 buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no"));
                 buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel"));
-                bodyEl = dlg.body.createChild({
+                //Roo.log(buttons);
+                bodyEl = dlg.bodyEl.createChild({
 
                     html:'<span class="roo-mb-text"></span><br /><input type="text" class="roo-mb-input" />' +
                         '<textarea class="roo-mb-textarea"></textarea>' +
@@ -145,6 +150,8 @@ Roo.bootstrap.MessageBox = function(){
                 textareaEl.enableDisplayMode();
                 progressEl = Roo.get(bodyEl.dom.childNodes[4]);
                 progressEl.enableDisplayMode();
+                
+                // This is supposed to be the progessElement.. but I think it's controlling the height of everything..
                 var pf = progressEl.dom.firstChild;
                 if (pf) {
                     pp = Roo.get(pf.firstChild);
@@ -161,9 +168,11 @@ Roo.bootstrap.MessageBox = function(){
          * the XHTML-compliant non-breaking space character '&amp;#160;')
          * @return {Roo.MessageBox} This message box
          */
-        updateText : function(text){
+        updateText : function(text)
+        {
             if(!dlg.isVisible() && !opt.width){
-                dlg.resizeTo(this.maxWidth, 100); // resize first so content is never clipped from previous shows
+                dlg.dialogEl.setStyle({ 'max-width' : this.maxWidth});
+                // dlg.resizeTo(this.maxWidth, 100); // forcing the height breaks long alerts()
             }
             msgEl.innerHTML = text || '&#160;';
       
@@ -213,8 +222,10 @@ Roo.bootstrap.MessageBox = function(){
             if(text){
                 this.updateText(text);
             }
+            
             if (pp) { // weird bug on my firefox - for some reason this is not defined
                 pp.setWidth(Math.floor(value*progressEl.dom.firstChild.offsetWidth));
+                pp.setHeight(Math.floor(progressEl.dom.firstChild.offsetHeight));
             }
             return this;
         },        
@@ -312,7 +323,7 @@ Roo.Msg.show({
             var d = this.getDialog();
             opt = options;
             d.setTitle(opt.title || "&#160;");
-            d.close.setDisplayed(opt.closable !== false);
+            d.closeEl.setDisplayed(opt.closable !== false);
             activeTextEl = textboxEl;
             opt.prompt = opt.prompt || (opt.multiline ? true : false);
             if(opt.prompt){
@@ -331,6 +342,9 @@ Roo.Msg.show({
                 textareaEl.hide();
             }
             progressEl.setDisplayed(opt.progress === true);
+            if (opt.progress) {
+                d.animate = false; // do not animate progress, as it may not have finished animating before we close it..
+            }
             this.updateProgress(0);
             activeTextEl.dom.value = opt.value || "";
             if(opt.prompt){
@@ -394,12 +408,14 @@ Roo.Msg.show({
          * @param {Object} scope (optional) The scope of the callback function
          * @return {Roo.MessageBox} This message box
          */
-        alert : function(title, msg, fn, scope){
+        alert : function(title, msg, fn, scope)
+        {
             this.show({
                 title : title,
                 msg : msg,
                 buttons: this.OK,
                 fn: fn,
+                closable : false,
                 scope : scope,
                 modal : true
             });
@@ -545,5 +561,5 @@ Roo.Msg.show({
 /**
  * Shorthand for {@link Roo.MessageBox}
  */
-Roo.MessageBox = Roo.MessageBox || Roo.bootstrap.MessageBox 
+Roo.MessageBox = Roo.MessageBox || Roo.bootstrap.MessageBox;
 Roo.Msg = Roo.Msg || Roo.MessageBox;