alecpl
2012-04-25 76248c7b6e5060107536de2c4e287667b02b3b0e
- Improved all headers viewer (mostly in Larry skin)


5 files modified
70 ■■■■ changed files
program/js/app.js 16 ●●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 4 ●●●● patch | view | raw | blame | history
skins/default/mail.css 4 ●●●● patch | view | raw | blame | history
skins/larry/mail.css 41 ●●●● patch | view | raw | blame | history
skins/larry/ui.js 5 ●●●●● patch | view | raw | blame | history
program/js/app.js
@@ -224,7 +224,7 @@
        this.env.message_commands = ['show', 'reply', 'reply-all', 'reply-list', 'forward',
          'moveto', 'copy', 'delete', 'open', 'mark', 'edit', 'viewsource', 'download',
          'print', 'load-attachment', 'load-headers', 'forward-attachment'];
          'print', 'load-attachment', 'show-headers', 'hide-headers', 'forward-attachment'];
        if (this.env.action == 'show' || this.env.action == 'preview') {
          this.enable_command(this.env.message_commands, this.env.uid);
@@ -578,10 +578,6 @@
        }
        else if (this.task == 'addressbook')
          this.list_contacts(props);
        break;
      case 'load-headers':
        this.load_headers(obj);
        break;
      case 'sort':
@@ -1109,7 +1105,7 @@
      default:
        var func = command.replace(/-/g, '_');
        if (this[func] && typeof this[func] === 'function') {
          ret = this[func](props);
          ret = this[func](props, obj);
        }
        break;
    }
@@ -5850,14 +5846,14 @@
  };
  // display all-headers row and fetch raw message headers
  this.load_headers = function(elem)
  this.show_headers = function(props, elem)
  {
    if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box || !this.env.uid)
      return;
    $(elem).removeClass('show-headers').addClass('hide-headers');
    $(this.gui_objects.all_headers_row).show();
    elem.onclick = function() { rcmail.hide_headers(elem); };
    elem.onclick = function() { rcmail.command('hide-headers', '', elem); };
    // fetch headers only once
    if (!this.gui_objects.all_headers_box.innerHTML) {
@@ -5867,14 +5863,14 @@
  };
  // hide all-headers row
  this.hide_headers = function(elem)
  this.hide_headers = function(props, elem)
  {
    if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box)
      return;
    $(elem).removeClass('hide-headers').addClass('show-headers');
    $(this.gui_objects.all_headers_row).hide();
    elem.onclick = function() { rcmail.load_headers(elem); };
    elem.onclick = function() { rcmail.command('show-headers', '', elem); };
  };
program/steps/mail/func.inc
@@ -986,8 +986,8 @@
{
  global $OUTPUT;
  $html = html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('load-headers','',this)"), '');
  $html .= html::div(array('id' => "all-headers", 'class' => "all", 'style' => 'display:none'), html::div(array('id' => 'headers-source'), ''));
  $html = html::div(array('id' => "all-headers", 'class' => "all", 'style' => 'display:none'), html::div(array('id' => 'headers-source'), ''));
  $html .= html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('show-headers','',this)"), '');
  $OUTPUT->add_gui_object('all_headers_row', 'all-headers');
  $OUTPUT->add_gui_object('all_headers_box', 'headers-source');
skins/default/mail.css
@@ -1286,13 +1286,13 @@
#headers-source
{
  margin: 0 0 2px 0;
  margin: 2px 0;
  padding: 0.5em;
  height: 145px;
  background: white;
  overflow: auto;
  font-size: 11px;
  border: 1px solid #999999;
  border: 1px solid #CCC;
  display: none;
  text-align: left;
  color: #333;
skins/larry/mail.css
@@ -734,18 +734,6 @@
    background-position: -32px -242px;
}
#full-headers {
    position: relative;
    color: #666;
    text-align: center;
    background-color: #f9f9f9;
    background: -moz-linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eaeaea), color-stop(100%,#e9e9e9));
    background: -o-linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
    background: -ms-linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
    background: linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
}
div.more-headers {
    cursor: pointer;
    height: 10px;
@@ -757,38 +745,23 @@
}
#all-headers {
    position: absolute;
    top: 11px;
    left: 10px;
    right: 10px;
    position: relative;
    margin: 0 10px;
    padding: 0;
    height: 180px;
    z-index: 500;
    border: 1px solid #bbb;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    -webkit-box-shadow: 0px 3px 4px 0px rgba(80, 80, 80, 0.6);
    -moz-box-shadow: 0px 3px 4px 0px rgba(80, 80, 80, 0.6);
    box-shadow: 0px 3px 4px 0px rgba(80, 80, 80, 0.6);
    border-radius: 4px;
    background: #fff;
    background: -moz-linear-gradient(top, #f0f0f0 0%, #fff 8%, #fff 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0f0f0), color-stop(8%,#fff), color-stop(100%,#fff));
    background: -o-linear-gradient(top, #f0f0f0 0%, #fff 8%, #fff 100%);
    background: -ms-linear-gradient(top, #f0f0f0 0%, #fff 8%, #fff 100%);
    background: linear-gradient(top,  #f0f0f0 0%, #fff 8%, #fff 100%);
}
#all-headers .ui-resizable-s {
    bottom: -2px;
}
#headers-source {
    display: none;
    position: absolute;
    top: 8px;
    top: 0;
    left: 0;
    right: 0;
    bottom: 8px;
    padding: 0 10px;
    bottom: 0;
    padding: 2px 5px;
    overflow: auto;
    text-align: left;
    color: #333;
skins/larry/ui.js
@@ -76,7 +76,8 @@
      if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') {
        layout_messageview();
        $("#all-headers").resizable({ handles: 's', minHeight: 50 });
        rcmail.addEventListener('aftershow-headers', function() { layout_messageview(); });
        rcmail.addEventListener('afterhide-headers', function() { layout_messageview(); });
        $('#previewheaderstoggle').click(function(e){ toggle_preview_headers(this); return false });
      }
      else if (rcmail.env.action == 'compose') {
@@ -291,7 +292,7 @@
  {
    $('#messagecontent').css('top', ($('#messageheader').outerHeight() + 10) + 'px');
    $('#message-objects div a').addClass('button');
    if (!$('#attachment-list li').length) {
      $('div.rightcol').hide();
      $('div.leftcol').css('margin-right', '0');