Changeset 57e38f4 in github


Ignore:
Timestamp:
Jan 9, 2011 3:24:39 AM (2 years ago)
Author:
alecpl <alec@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
0ff554d
Parents:
808d161
Message:
  • Use 'loading' message's labels stacking + some code improvements
File:
1 edited

Legend:

Unmodified
Added
Removed
  • program/js/app.js

    ref292ef r57e38f4  
    45364536    // The same message is already displayed 
    45374537    if (this.messages[key]) { 
     4538      // replace label 
    45384539      if (this.messages[key].obj) 
    45394540        this.messages[key].obj.html(msg); 
     4541      // store label in stack 
     4542      if (type == 'loading') { 
     4543        this.messages[key].labels.push({'id': id, 'msg': msg}); 
     4544      } 
     4545      // add element and set timeout 
    45404546      this.messages[key].elements.push(id); 
    4541       window.setTimeout(function() { ref.hide_message(id, true); }, timeout); 
     4547      window.setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout); 
    45424548      return id; 
    45434549    } 
    45444550 
    4545     var obj = $('<div>').addClass(type).html(msg).data('msg', msg), 
    4546       cont = $(this.gui_objects.message).show(); 
     4551    // create DOM object and display it 
     4552    var obj = $('<div>').addClass(type).html(msg).data('key', key), 
     4553      cont = $(this.gui_objects.message).append(obj).show(); 
     4554 
     4555    this.messages[key] = {'obj': obj, 'elements': [id]}; 
    45474556 
    45484557    if (type == 'loading') { 
    4549       obj.appendTo(cont); 
    4550       this.messages[key] = {'obj': obj, 'elements': [id]}; 
    4551       window.setTimeout(function() { rcmail.hide_message(id); }, timeout); 
    4552       return id; 
     4558      this.messages[key].labels = [{'id': id, 'msg': msg}]; 
    45534559    } 
    45544560    else { 
    4555       obj.appendTo(cont).bind('mousedown', function() { return ref.hide_message(obj, true); }); 
    4556       window.setTimeout(function() { ref.hide_message(id, true); }, timeout); 
    4557       this.messages[key] = { 'obj': obj, 'elements': [id] }; 
    4558       return id; 
    4559     } 
     4561      obj.click(function() { return ref.hide_message(obj); }); 
     4562    } 
     4563 
     4564    window.setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout); 
     4565    return id; 
    45604566  }; 
    45614567 
     
    45674573      return parent.rcmail.hide_message(obj, fade); 
    45684574 
     4575    var k, n, i, msg, m = this.messages; 
     4576 
     4577    // Hide message by object, don't use for 'loading'! 
    45694578    if (typeof(obj) == 'object') { 
    4570       // hide message object 
    45714579      $(obj)[fade?'fadeOut':'hide'](); 
    4572        
    4573       var msg = $(obj).data('msg'); 
     4580      msg = $(obj).data('key'); 
    45744581      if (this.messages[msg]) 
    45754582        delete this.messages[msg]; 
    45764583    } 
     4584    // Hide message by id 
    45774585    else { 
    4578       // hide message by id 
    4579       var k, n, m = this.messages; 
    45804586      for (k in m) { 
    45814587        for (n in m[k].elements) { 
    45824588          if (m[k] && m[k].elements[n] == obj) { 
    45834589            m[k].elements.splice(n, 1); 
    4584             // hide dom element if last instance is removed 
     4590            // hide DOM element if last instance is removed 
    45854591            if (!m[k].elements.length) { 
    45864592              m[k].obj[fade?'fadeOut':'hide'](); 
    45874593              delete m[k]; 
     4594            } 
     4595            // set pending action label for 'loading' message 
     4596            else if (k == 'loading') { 
     4597              for (i in m[k].labels) { 
     4598                if (m[k].labels[i].id == obj) { 
     4599                  delete m[k].labels[i]; 
     4600                } 
     4601                else { 
     4602                  msg = m[k].labels[i].msg; 
     4603                } 
     4604                m[k].obj.html(msg); 
     4605              } 
    45884606            } 
    45894607          } 
Note: See TracChangeset for help on using the changeset viewer.